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
'Computer Science > Algorithm Problem' 카테고리의 다른 글
백준] 1439 - 뒤집기 (0) | 2018.06.06 |
---|---|
백준] 1531 - 투명 (0) | 2018.06.05 |
백준] 2966 - 찍기(COCI 2008/2009) (0) | 2018.05.29 |
백준] 2947 - 나무 조각(COCI 2008/2009) (0) | 2018.05.28 |
백준] 3023 - 마술사 이민혁(COCI 2006/2007) (0) | 2018.05.27 |