일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- BOJ
- stack
- PrefixSum
- algorithm
- solid 원칙
- Gold
- dirtyflag pattern
- Flyweight Pattern
- 8-Puzzle
- Modern C++
- knapsack Problem
- LEVEL2
- SWEA
- Project
- Silver
- Bronze
- 프로그래머스
- 프로세스 상태
- effective C++
- programmers
- Unity
- Euclidean
- 3D RPG
- BFS
- Zenject
- trie
- binary search
- level1
- level3
- two pointer
Archives
- Today
- Total
Patrick's Devlog
[BOJ/C++] ROT13(11655번) 본문
1. 개요
https://www.acmicpc.net/problem/11655
11655번: ROT13
첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.
www.acmicpc.net
1-1. 설명
문자열이 주어졌을 때, ROT13으로 암호화한 다음 출력하는 프로그램을 작성한다.
1-2. 제한 사항
- 첫줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어짐
2. 구현
2-1. 풀이
문자 하나씩 + 13을 해주면 된다. 문자가 알파벳 z를 넘어버리면 - 13을 해주면 된다.
2-2. 코드
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
string str, result = "";
getline(cin, str);
for (char ch : str) {
if (ch >= '0' && ch <= '9') {
result += ch;
continue;
}
if (ch >= 'a' && ch <= 'z') {
if (ch + 13 > 'z') ch -= 13;
else ch += 13;
result += ch;
}
else if (ch >= 'A' && ch <= 'Z') {
if (ch + 13 > 'Z') ch -= 13;
else ch += 13;
result += ch;
}
else result += ch;
}
cout << result;
return 0;
}
'Algorithm > Algorithms Practice' 카테고리의 다른 글
[BOJ/C++] 연속합(1912번) (0) | 2022.10.20 |
---|---|
[BOJ/C++] 단지번호붙이기(2667번) (0) | 2022.10.19 |
[BOJ/C++] 그룹 단어 체커(1316번) (0) | 2022.10.17 |
[BOJ/C++] 카드게임(10801번) (0) | 2022.10.14 |
[BOJ/C++] 덩치(7568번) (0) | 2022.10.13 |