반응형
백준 BAEKJOON 4583번 거울상 [PYTHON/파이썬]
<문제 출처>
https://www.acmicpc.net/problem/4583
<풀이>
입력받은 문자열을 뒤집어서 저장 후
거울상 관계에 있는 문자면 result 값에 거울에 반사된 문자를 넣어줬다.
풀다보니 if~elif 문이 깔끔하지 못하게 길어졌는데
코드를 줄이기 위해 좀 더 머리를 굴려봐야겠다.
mirror1 = ['i', 'o', 'v', 'w', 'x'] # 자신과 거울상 관계
mirror2 = ['b', 'd', 'p', 'q'] # 서로 거울상 관계
while 1 :
s = input()[::-1] # 문자열 뒤집어서 받기
result = '' # 결과값
if s == '#' :
break
for i in range(len(s)) :
if s[i] in mirror1 :
result += s[i]
elif s[i] in mirror2 :
if s[i] == 'b' :
result += 'd'
elif s[i] == 'd' :
result += 'b'
elif s[i] == 'p' :
result += 'q'
elif s[i] == 'q' :
result += 'p'
if len(result) == len(s) :
print(result)
else :
print('INVALID')
반응형
'ALGORITHM > PYTHON' 카테고리의 다른 글
백준 BAEKJOON 25183번 인생은 한 방 [PYTHON/파이썬] (0) | 2022.10.31 |
---|---|
백준 BAEKJOON 25496번 장신구 명장 임스 [PYTHON/파이썬] (0) | 2022.10.30 |
백준 BAEKJOON 25177번 서강의 역사를 찾아서 [PYTHON/파이썬] (0) | 2022.10.28 |
백준 BAEKJOON 2455번 지능형 기차 [PYTHON/파이썬] (0) | 2022.10.27 |
백준 BAEKJOON 25286번 11월 11일 [PYTHON/파이썬] (0) | 2022.10.27 |