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을 더해서 뒤로갈 수 있게 해주면 된다.)
마지막에 바뀐 문자열을 출력하여 준다.