본문 바로가기

알고리즘/BOJ

[C++] 백준 11655번 - ROT13


0. 문제

 

https://www.acmicpc.net/problem/11655

 

1. 아이디어

 

 

 

2. 소스코드

 

#include <iostream>
#include <string>
int main()
{
	std::string str;
	std::getline(std::cin, str);

	for (int i = 0; i < str.length(); i++)
	{
		if (str[i] >= 'a' && str[i] <= 'z')
		{
			if (str[i] + 13 > 'z') str[i] -= 13;
			else str[i] += 13;
		}
		else if (str[i] >= 'A' && str[i] <= 'Z')
		{
			if (str[i] + 13 > 'Z')str[i] -= 13;
			else str[i] += 13;
		}
	}
	std::cout << str;
}

 

3. 결과

 

 

4. 피드백

 

  • str[N]은 char형 변수인데 127이 넘는 숫자를 잠시라도 넣으려고 하니 오버플로우가 났다.. 누가 봐도 너무 너무 쉬운 문제인데 한참 삽질했다. 기초를 다지자!