Koala - 6기/기초 알고리즘 스터디
[백준/c++]5598번 : 카이사르 암호
hoeunwang
2022. 5. 15. 16:41
https://www.acmicpc.net/problem/5598
5598번: 카이사르 암호
가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건
www.acmicpc.net
문제 해결
문자열을 받고 3칸씩 건너뛰어 출력해주는 문제이다.
코드
#include <iostream>
#include <string>
using namespace std;
int main(void) {
string str;
cin >> str;
for (int i = 0; i < str.size(); i++) {
str[i] -= 3;
if (str[i] < 'A')
str[i] += 26;
}
cout << str;
return 0;
}
문제 풀이
받은 문자열 str을 가지고 문자를 옆으로 3칸 미는 과정을 반복하여 출력해주면 된다.
반복문을 계속해서 돌렸을 때 결과가 'A'의 값보다 더 작아질 경우를 고려해주어야 한다.(65보다 작아졌을때 26을 더해서 뒤로갈 수 있게 해주면 된다.)
마지막에 바뀐 문자열을 출력하여 준다.