문제
https://www.acmicpc.net/problem/11655
11655번: ROT13
첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.
www.acmicpc.net
해설
알파벳이 26개인것을 인지하고 문제를 보면 "문장" -> "암호화1번한 문장" -> "다시한번 암호화 한 문장(2번암호화)"라는 조건을 통해 뭔가 1대1대응이 되는 규칙이 있다는 것을 파악 한 후 아스키 코드상에서 13을 더한 값과 대칭되는 것을 파악
그 후 알파벳에 해당하는 아스키 코드 값에서는 13만큼 더한 값을 ret(결과)에 저장
그 외에는 그대로 ret에 저장
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <bits/stdc++.h>
using namespace std;
string S,ret;
int main(){
getline(cin,S);
for(int i = 0; i < S.size(); i++){
if(65<= S[i] && S[i]<=77)
ret += S[i] + 13;
else if(78<= S[i] && S[i] <=90)
ret += S[i] - 13;
else if(97<= S[i] && S[i]<= 109)
ret += S[i] + 13;
else if(110<= S[i] && S[i]<=122)
ret += S[i] - 13;
else
ret += S[i];
}
cout << ret;
return 0;
}
|
cs |
'백준 알고리즘(C++)' 카테고리의 다른 글
백준 2559번 수열(C++) (2) | 2023.12.17 |
---|---|
백준 9966번 한국이 그리울 땐 서버에 접속하지(C++) (0) | 2023.12.17 |
백준 1159번 농구 경기(C++) (4) | 2023.12.06 |
백준 10988번 팬린드롬인지 확인하기(C++) (4) | 2023.12.06 |
백준 2979번 트럭 주차(C++) (1) | 2023.12.05 |