PS/BOJ

[백준 BOJ] 5598 카이사르 암호

Jubil 2019. 8. 12. 23:04
반응형

링크

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