Post List

[BOJ] 백준 5598 카이사르 암호

[BOJ] 백준 5598 카이사르 암호



이 문제는 아스키 코드를 이용하면 되는 문제 입니다.
A(97) <=> D(100)  인 관계를 코드로 서술하면 되는 문제 입니다.
까다로운 점은, 카이사르 암호로변환했을때 A가 나왔다면, 이를 다시 평문으로 바꿔주어야 하는데 97-3 을 하게 된다면 아스키코드가 94인 엉뚱한 문자를 출력하게 되므로
예외케이스를 염두에 두어야 합니다.

소스코드 : 

#include 
#include 
using namespace std;

int main() {
 string s;
 cin >> s;
 int slen = s.length();
 for (int i = 0; i < slen; i++) {
  cout << (s[i] - 3 < 65 ? (char)(s[i] + 23): (char)((s[i] - 3)));
 }

}

댓글