알고리즘 공부/C++

백준 11655번 ROT13 C++

마달랭 2024. 7. 20. 23:22
반응형

리뷰

문자열의 각 문자의 아스키코드를 13씩 밀어 출력하는 문제

 

문제 풀이

  1. 문자열을 받아주고 정답을 출력할 문자열을 빈 문자열로 초기화 해준다.
  2. 아스키 코드가 65 ~ 77, 97 ~ 109라면 13을 더해주고 78 ~ 90, 110 ~ 122 라면 13을 빼준후 정답 문자열에 더해준다.
  3. 만약 그 외의 아스키 코드라면 그대로 정답 문자열에 더해주면 된다. for문이 종료된 후 정답 문자열을 출력해 준다.

 

참고 사항

없음

 

 

정답 코드

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main() {
	string s, ans = "";
	getline(cin, s);
	for (int i = 0; i < s.size(); i++) {
		if ((65 <= s[i] && s[i] < 78) || (97 <= s[i] && s[i] < 110)) ans += s[i] + 13;
		else if ((78 <= s[i] && s[i] < 91) || (110 <= s[i] && s[i] < 123)) ans += s[i] - 13;
		else ans += s[i];
	}
	cout << ans;
}

 

 

728x90
반응형

'알고리즘 공부 > C++' 카테고리의 다른 글

백준 11656번 접미사 배열 C++  (0) 2024.07.20
백준 2948번 2009년 C++  (1) 2024.07.20
백준 11170번 0의 개수 C++  (1) 2024.07.20
백준 5218번 알파벳 거리 C++  (0) 2024.07.20
백준 10821번 정수의 개수 C++  (0) 2024.07.20