프로그래머스 - 시저 암호

박상진·2021년 12월 3일
0

프로그래머스

목록 보기
18/65


문자열 s를 정수 n번만큼 뒤에 문자로 미루는 문제이다.
대소문자를 분류하고, 공백은 공백으로, z이후의 문제는 a부터 다시 시작한다.

먼저 문자를 숫자로 변환할 수 있는지 확인해보았다.
확인결과 아스키코드(ascii)라는 것이 있음을 확인하였다.

출처 : https://ooyoung.tistory.com/104
자세한 설명은 위 블로그에 있다.

간단하게 말하면 컴퓨터에 문자를 전달하기 위한 약속이라 이해했다.
파이썬에서는 이 코드를 문자로, 문자를 코드로 바꾸는 함수가 내장되어있다.
문자를 코드로 바꾸는 함수는 ord(), 코드를 문자로 바꾸는 함수는 chr()이다.
이를 사용하여 코드를 짜보았다.

조건이 많이 필요했다.
공백에 대한 것과 z를 넘어가는 숫자에 대한 것을 추가해주었다.
결과는 46.2가 나왔다.
아마도 25정도의 높은 숫자가 더해지는 과정에서 문제가 발생했을 수 있다는 생각이 들었다.
그래서 코드를 이렇게 바꿔보았다.

매우 오래 걸렸다.
조건문을 더 세분화 하여 2중 for문이 되었다.
결과는

쉽지 않았지만 재미를 느끼는 문제였다!

profile
개발자가 되고싶당

0개의 댓글