• TOC {:toc}

이 글은 백준 온라인 저지의 5598번 문제를 파이썬(Python)으로 풀이한 것을 모아놓은 글입니다.

일종의 연습 기록이며 제가 정답을 받은 코드와 참고할만한 다른 코드를 같이 기록합니다. 필요한 경우 코드에 대한 해설을 기록합니다만 코드는 통과했어도 해설은 틀릴 수 있기 때문에 가볍게 참고해주시길 부탁드립니다. 피드백은 편하신 방법으로 자유롭게 주시면 감사하겠습니다.

2021.04.23

메모리 시간 코드 길이
28776 KB 64 ms 84 B
A = 65
for c in input():
    print(chr((ord(c) - 3 - A) % 26 + A), end = "")
print()

아이디어 & 풀이

규칙이 key와 value 사이에 3차이가 있는 것이기 때문에 입력받은 문자를 아스키코드 값으로 변환해 계산한다.

A, B, C는 3을 빼면 더 큰 값인 X, Y, Z이 되어야 하기 때문에

  • 기준인 A값(i.e., 65)을 빼주고
  • 알파벳 개수인 26으로 나눈 나머지를 구한 다음에
  • 다시 A값을 더해주었다.

피드백

  • A를 65의 값을 갖는 변수로 만드는 것 보다 ord("A")를 사용하는 게 더 가독성이 좋았을 것 같다.

참고 답안

print("".join([chr((ord(i) - 68) % 26 + 65) for i in input()]))

아이디어 & 풀이

변환한 값을 반환하는 ‘리스트’를 만든 뒤 이를 join()으로 묶어 출력한다.