❔문제
🔄 문제 및 입출력 조건 파악
입력: 문자열 S는 소문자, 대문자, 숫자로 이뤄진 ≤ 100이고 띄어쓰기 포함.
✏️ 문제풀이
소문자 'a'(97)랑 대문자 'A'(65)는 아스키코드 외워두면 편리합니다.
띄어쓰기가 포함된 문장 입력이 들어오므로 `getline()` 함수로 입력받습니다.
13번째 소문자('m'), 대문자('M')를 기준으로 처리방법이 바뀝니다
- 1~13번째 알파벳(소문자 또는 대문자)라면 그냥 덧셈해주면 됩니다.
- 14~26번째 알파벳이라면 기준 알파벳(m 또는 M)으로부터 몇 칸이나 떨어져있는지 계산한 후 다시 'a'('A')부터 셈해줍니다.
📝 코드
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
string str;
getline(cin, str);
for (char& c : str) {
if (isalpha(c)) {
if (islower(c)) {
if (c > 'm') c = 'a' + (c - 'n');
else c += 13;
} else {
if (c > 'M') c = 'A' + (c - 'N');
else c += 13;
}
}
}
cout << str << '\n';
}
🕧 결과
'Problem Solving' 카테고리의 다른 글
알고리즘 :: 백준 :: 2559 - 수열 (0) | 2025.01.07 |
---|---|
알고리즘 :: 백준 :: 9996 - 한국이 그리울 땐 서버에 접속하지 (0) | 2025.01.07 |
알고리즘 :: 백준 :: 1159 - 농구 경기 (0) | 2025.01.07 |
알고리즘 :: 백준 :: 10988 - 팰린드롬인지 확인하기 (0) | 2025.01.07 |
알고리즘 :: 백준 :: 2979 - 트럭주차 (0) | 2025.01.07 |