#include <bits/stdc++.h>
using namespace std;
string s;
char ret[103];
int main(){
getline(cin, s);
for(int i=0; i<s.size(); i++){
if(s[i]-'A'>=0 && s[i]-'A'<26){
if('Z'-s[i] <13){
int part = 13 - ('Z'-s[i]);
ret[i] = 'A' + (part-1);
}else{
ret[i] = s[i] + 13;
}
}else if(s[i]-'a'>=0 && s[i]-'a'<26){
if('z'-s[i] <13){
int part = 13 - ('z'-s[i]);
ret[i] = 'a'+ (part-1);
}else{
ret[i] = s[i]+13;
}
}else{
ret[i] = s[i];
}
cout << ret[i];
}
return 0;
}
알파벳을 z(알파벳이 소문자인 경우) 혹은 Z(알파벳이 대문자인 경우)에서 뺐을 때 13보다 작으면 13에서부터 차이를 구하고 a 혹은 A에서부터 남은 차이만큼 더해준다.
cf) 만약 z 혹은 Z를 넘어갔을 때 전체 알파벳 숫자 26을 한번 더 빼줘도 된다.
O -> B
79 + 13 = 92
Z인 90을 넘어가므로 26을 빼주면 2가 된다.
그럼 B가 된다.
'코테' 카테고리의 다른 글
백준 1620 - 나는야 포켓몬 마스터 이다솜 (0) | 2023.08.24 |
---|---|
백준 2559번 - 수열 (0) | 2023.08.22 |
백준 1296번- 팀 이름 정하기 (1) | 2023.08.15 |
백준 1292번 - 쉽게 푸는 문제 (0) | 2023.08.14 |
백준 10988번 - 팰린드롬인지 확인하기 (0) | 2023.08.14 |