[문제 링크] 👇
풀이
단순 구현
- b ➜ d로 변경
- d ➜ b로 변경
- p ➜ q로 변경
- q ➜ p로 변경
변경한 후 문자열을 뒤집는다.
※ 문자열을 변경할 수 있는 replace() 메서드도 있다. replace()를 사용해도 되지만, 코드가 번잡해지니 패스한다.
Solution
test_case = int(input())
for tc in range(1, test_case + 1):
word = input()
result = ""
for i in word:
if i == "b":
result += "d"
elif i == "d":
result += "b"
elif i == "q":
result += "p"
else:
result += "q"
print("#%d %s" %(tc, result[::-1]))
👩💻 회고
처음엔 replace() 메서드를 사용하려고 했다. replace()로 풀다가 좀 이상한 느낌이 들어서 확인해보니 작동이 제대로 되지 않았다. 아래와 같이 풀이했었는데,,
word = 'qpp'
word = word.replace('p', 'q') # 'p'를 모두 'q'로 변경 -> 'qqq'
word = word.replace('q', 'p') # 'q'를 모두 'p'로 변경 -> 'ppp'
이렇게 되면 처음에 p를 q로 바꾸고 나서, 그 다음에 q를 다시 p로 바꿔버리므로 결국 'ppp'가 되어버린다.
해결 방법 (임시 문자 사용)
word = 'qpp'
word = word.replace('p', 'temp') # 'p'를 임시 문자로 변경 -> 'qtemptemp'
word = word.replace('q', 'p') # 'q'를 'p'로 변경 -> 'ptempp'
word = word.replace('temp', 'q') # 임시 문자를 'q'로 변경 -> 'pqq'
print(word)
해결 방법은 임시 문자를 사용하여 푸는 것인데, 4개의 문자를 다 변경해야 하므로 번거롭다는 것이다.
다음에 적절한 문제가 나올 때 사용하는 것이 좋겠다.
[파이썬 replace() 메서드 설명] 👉 https://dev-cloud.tistory.com/329
'SWEA' 카테고리의 다른 글
[SWEA] 2805. 농작물 수확하기 (Python/D3) (0) | 2024.10.24 |
---|---|
[SWEA] 1215. [S/W 문제해결 기본] 3일차 - 회문1 (Python/D3) (2) | 2024.10.22 |
[SWEA] 4751. 다솔이의 다이아몬드 장식 (Python/D3) (0) | 2024.10.22 |
[SWEA] 1213. [S/W 문제해결 기본] 3일차 - String (Python/D3) (0) | 2024.10.22 |
[SWEA] 3456. 직사각형 길이 찾기 (Python/D3) (0) | 2024.10.22 |