풀이
어떤 문자가 암호화 되어 왕에게 도착하는데,
그 과정은 아래와 같다.
- J : 모든 문자를 왼쪽으로 회전
- C : 모든 문자를 오른쪽으로 회전
- E : 문자의 절반을 서로 바꿈 (문자 수가 홀수이면 가운데 문자는 냅둔다)
- A : 문자를 뒤집는다
- P : 문자의 내용 중 숫자만 1씩 증가, 9일 경우 0이 된다.
- M : 문자의 내용 중 숫자만 1씩 감소, 0일 경우 9가 된다.
이러한 암호와 과정을 함수로 미리 만들어두자.
아래 코드는 문자를 전달받아 위의 암호화 과정에 따라 암호화한 문자를 반환하는 함수들이다.
이렇게 암호화된 문자가 왕에게 도착하고, 왕은 암호화된 문자를 다시 복호화해 원본 문자를 확인하고자 한다.
J는 C와, P는 M과 반대로, A와 E는 그대로 유지한채 복호화를 진행해주면 된다.
복호화시 참조할 dict를 만들어두고
입력받은 암호화 순서의 역순대로 복호화를 진행하면 된다.
소스코드
출처
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 2096] 내려가기 [Python] (0) | 2023.06.18 |
---|---|
[백준 1865] 웜홀 [Python] (0) | 2023.06.17 |
[백준 28224] Final Price [Python] (0) | 2023.06.15 |
[백준 1298] 노트북의 주인을 찾아서 [Python] (0) | 2023.06.14 |
[백준 11375] 열혈강호 [Python] (1) | 2023.06.14 |