Computer Science/Algorithm Problem

백준] 1855 - 암호

TwinParadox 2018. 6. 4. 20:48
728x90

시간 제한 : 2초

메모리 제한 : 128MB




입력

열의 개수 K(1≤K≤20)가 주어지고 두 번째 줄에는 암호화 된 문자열(모두 영소문자)이 주어진다. (문자열의 길이는 200 이하이며 K의 배수이다.)




출력

첫 줄에 원래의 문자열을 출력한다..




소스코드

#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(void)
{
	int k, len;
	string crypt;
	char arr[200][200];
	cin >> k >> crypt;
	len = crypt.length();
	for (int i = 0; i < len/k; i++)
	{
		if (i % 2 == 0)
			for (int j = 0; j < k; j++)
				arr[i][j] = crypt[i*k + j];
		else
			for (int j = k - 1; j >= 0; j--)
				arr[i][k-1-j] = crypt[i*k + j];
	}
	for (int i = 0; i < k; i++)
		for (int j = 0; j < len / k; j++)
			cout << arr[j][i];
}




Tip

문자열 처리에 능하면 쉽게 풀 수 있는데, 배열 구성을 잘못하면 인덱스 문제로 쉽게 틀릴 수 있다.



728x90