문자열을 n개만큼 한 줄씩 잘라서 각 칸마다 대응되는 key를 새로운 줄로 삼는 문제이다.
vector로 각 문자를 대응되는 줄(key)에 차곡차곡 붙였다.
마지막엔 각 줄을 일렬로 다시 출력했다.
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
int main(){
char s[1024];
while(gets(s) != NULL){
int n, col[1001];
scanf(" %d", &n);
for(int i=0; i<n; ++i) scanf("%d ", &col[i]);
int len = strlen(s);
vector<char> v[n];
for(int i=0; i<len; ++i){
v[col[i%n]-1].push_back(s[i]);
}
for(int i=0; i<n; ++i){
for(int j=0; j<v[i].size(); ++j) if(v[i][j]) putchar(v[i][j]);
}
puts("");
}
return 0;
}
댓글 없음:
댓글 쓰기