2023. 12. 27. 19:46, 문제풀이/백준(BOJ)
https://www.acmicpc.net/problem/11655
생각
char + 13을 해주면 되는 아주 간단한 문제같지만 아스키 코드는 알파벳만 있는게 아니라는 점..
z를 넘어갔을때 다시 a로 돌아와서 넘기는 것이 포인트인 문제라고 생각
구현
아스키 코드 M(77)을 기준으로 +13하면 Z, -13하면 A여서 M(m)을 기준으로 +할지 -할지를 정해줬다.
isdigit()으로 문자인지 구분하고, 띄어쓰기도 아스키코드로 변환이 되기때문에 if문에서 걸러준다.
구현 코드
#include<bits/stdc++.h>
using namespace std;
int main()
{
string str;
getline(cin,str);
for (int i = 0; i < str.size(); i++)
{
if (isdigit(str[i])==0 && str[i] != ' ')
{
if (str[i] <= 'Z') // 대문자
{
if ('M' < str[i])
str[i] -= 13;
else
str[i] += 13;
}
else // 소문자
{
if ('m' < str[i])
str[i] -= 13;
else
str[i] += 13;
}
}
}
cout << str;
}
리뷰
'문제풀이 > 백준(BOJ)' 카테고리의 다른 글
[BOJ] 1159번 : 농구 경기 (0) | 2023.12.27 |
---|---|
[BOJ] 1620번 : 나는야 포켓몬 마스터 이다솜 (0) | 2023.12.26 |
[BOJ] 10988번 : 팰린드롬인지 확인하기 (0) | 2023.12.26 |
[BOJ] 10808번 : 알파벳 개수 (0) | 2023.12.26 |
[BOJ] 11024번 : 더하기 4 (0) | 2023.02.23 |
Comments