문자열을 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; }
댓글 없음:
댓글 쓰기