키가 주어지면 


1. index와 함께 pair에 담고 sort


2. 암호문을 받아서 원래 있었던 열에 집어넣고


3. sort(pair<char,index>) 순서를 참고해서 차례대로 출력하면 끝


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <vector>
#include <string.h>
#include <algorithm>
using namespace std;
 
char key[12], s[102], res[101][10];
vector<pair<charint>> v;
int len, len2, it[10], i, j;
 
int main() {
    scanf(" %s"&key);
    len = strlen(key);
    for (i = 0; i < len; i++
        v.push_back({ key[i],i });
    sort(v.begin(), v.end());
    for (i = 0; i < v.size(); i++) it[v[i].second] = i;
    scanf(" %s"&s);
    len2 = strlen(s) / len;
    for (j = 0; j < len; j++for (i = 0; i < len2; i++
        res[i][j] = s[j*len2 + i];
    for (i = 0; i < len2; i++for (j = 0; j < len; j++
        printf("%c", res[i][it[j]]);
    return 0;
}
cs


'BOJ' 카테고리의 다른 글

2931 가스관  (0) 2017.12.01
1198 삼각형으로 자르기  (0) 2017.10.30
12835 삼거리  (0) 2017.10.30
3159 전구  (0) 2017.10.30
5619 세 번째  (0) 2017.10.30

+ Recent posts