입력된 문자열을 가지고 암호화를 하는 문제이다.
📜 접근 방법
- 문자열의 갯수만큼 반복한다.
- 문자 다음 수를 제곱시킨다.
- 아스키 코드를 이용하여 암호화를 시킨다
❌ 실패 코드
만약 change_c가 ord('z')보다 두배 이상 클 경우 값이 다르게 나오는 것을 생각못했다.
import sys
input = sys.stdin.readline
n = int(input())
user_input = input()
res = ''
i = 0
while i < n:
c = user_input[i]
cnt = int(user_input[i + 1])
cnt = cnt ** 2
change_c = ord(c) + cnt
if change_c > ord('z'):
change_c -= ord('z')
change_c += ord('a') - 1
res += chr(change_c)
i += 2
print(res)
✅ 정답 코드
import sys
input = sys.stdin.readline
n = int(input())
user_input = input()
res = ''
i = 0
while i < n:
c = user_input[i]
cnt = int(user_input[i + 1])
cnt = cnt ** 2
change_c = (ord(c) + cnt - ord('a')) % 26 + ord('a')
res += chr(change_c)
i += 2
print(res)
💡알게 된점
좀 더 극단적인 예시에 대해 생각을 많이 해봐야겠다.
'코딩테스트 > Python' 카테고리의 다른 글
[python 구름] Stack (0) | 2023.05.15 |
---|---|
[python 구름] 개미와 진딧물 (0) | 2023.05.14 |
[python 구름] 폭탄 구현하기 (2) | 2023.05.11 |
[python 구름] 0커플 (0) | 2023.05.10 |
[python 구름] 대소문자 바꾸기 (0) | 2023.05.06 |