본문 바로가기
코딩테스트/Python

[python 구름] 제곱 암호

by nahkim 2023. 5. 13.

입력된 문자열을 가지고 암호화를 하는 문제이다.

📜 접근 방법

  1. 문자열의 갯수만큼 반복한다.
    1. 문자 다음 수를 제곱시킨다.
    2. 아스키 코드를 이용하여 암호화를 시킨다

 

 

❌ 실패 코드

만약 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