※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 10914번 문제인 Veni, vidi, vici이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/10914
10914번: Veni, vidi, vici
원철이는 대한민국의 국방을 위한 암호학 시간에 카이사르 암호에 대해 배웠다. 카이사르 암호는 매우 유명한 암호체계로 매우 간단한 치환암호의 일종이다. 간단히 설명하면 다음과 같다. a를
www.acmicpc.net
주어진 원철암호 단어들을 복호화하는 문제이다.
주어진 원철암호의 단어들은 앞에서부터 두 문자씩 끊어 해석할 수 있다. 두 문자가 나타내는 수의 합과 주어진 N을 이용해 원래의 문자를 계산하는 것으로 문제를 해결하자.
while문과 cin을 이용하면 주어지는 입력을 단어단위로 읽어 구현을 한결 편하게 할 수 있다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
using namespace std;
int N, slen;
string s;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N;
while (cin >> s) {
slen = s.length();
for (int i = 0; i + 1 < slen; i += 2) {
char c = ((s[i] - 'a') + (s[i + 1] - 'a') + 26 - N) % 26 + 'a';
cout << c;
}
cout << ' ';
}
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 27532 // C++] 시계 맞추기 (0) | 2024.02.24 |
---|---|
[BOJ 13269 // C++] 쌓기나무 (0) | 2024.02.23 |
[BOJ 28250 // C++] 이브, 프시케 그리고 푸른 MEX의 아내 (0) | 2024.02.21 |
[BOJ 24789 // C++] Railroad (0) | 2024.02.20 |
[BOJ 13268 // C++] 셔틀런 (1) | 2024.02.19 |