반응형
링크
https://www.acmicpc.net/problem/5598
풀이
카이사르 단어를 원래 단어로 고쳐 출력하는 문제입니다.
저는 ABC는 XYZ로(+23) 나머지는 -3해서 출력하는 방식을 사용했습니다.
하지만 파이썬에는 translate을 이용해서 변환 테이블을 만들 수 있더라구요.
아래 코드 보시면 간단하게 풀 수 있다는 걸 알게 됩니다.
코드
//5598_카이사르 암호
#include <iostream>
#include <string>
using namespace std;
string str;
int main() {
getline(cin, str);
for (int i = 0; i < str.length(); ++i) {
switch (str.at(i)) {
case 'A':
case 'B':
case 'C':
cout << char(str.at(i) + 23);
break;
default:
cout << char(str.at(i) - 3);
}
}
return 0;
}
#5598_카이사르 암호
s=input()
table = str.maketrans('DEFGHIJKLMNOPQRSTUVWXYZABC', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
print(s.translate(table))
위와 같이 3줄로 풀 수 있었습니다.
반응형
'PS > BOJ' 카테고리의 다른 글
[백준 BOJ] 16433 주디와 당근농장 (0) | 2019.08.13 |
---|---|
[백준 BOJ] 10988 팰린드롬인지 확인하기 (0) | 2019.08.13 |
[백준 BOJ] 2231 분해합 (0) | 2019.08.12 |
[백준 BOJ] 1316 그룹 단어 체커 (0) | 2019.08.12 |
[백준 BOJ] 3052 나머지 (0) | 2019.08.12 |