본문 바로가기

Algorithm/Simulation

Baekjoon 17289 에니그마

Link https://www.acmicpc.net/problem/17289

소스결과 1992 KB / 0 ms

출처 Baekjoon

언어 C++ 17

분류 구현

 

설명

에니그마를 구현해 봅시다.

 

알고리즘

문제의 설명을 순서대로 따라 구현합니다.

 

소스코드

 

#include <iostream>
#include <string>

using namespace std;

short chain[] = { 'C' - 'A','H' - 'A','I' - 'A','C' - 'A','K' - 'A','E' - 'A','N' - 'A','S' - 'A' };

void updateChain() {

	chain[0] = (chain[0] + 1) % 26;
}

short convert(int pos, short val)
{
	if (pos == 8)
		return val;
	else
		return convert(pos + 1, (val + chain[pos]) % 26);
}

int main()
{
	string input; cin >> input;
	string res;

	for (int i = 0; i < input.size(); i++)
	{
		res += 'A' + convert(0, input[i] - 'A');
		updateChain();
	}

	cout << res;
	return 0;
}

 

'Algorithm > Simulation' 카테고리의 다른 글

Baekjoon 2164 카드 2  (0) 2019.11.11
Baekjoon 17264 I AM IRONMAN  (0) 2019.08.21
Baekjoon 17292 바둑이 포커  (0) 2019.08.21
Baekjoon 17254 키보드 이벤트  (0) 2019.08.21
Baekjoon 17144 미세먼지 안녕!  (0) 2019.04.18