본문 바로가기

알고리즘 관련/BOJ

BOJ)2992 크면서 작은 수

문제:icpc.me/2992


등장하는 수로 조합가능 한 모든 수를 비교하여 그 중 최솟값을 구해주면 된다. 시간 복잡도는 O(6!)이다.


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 <cstdio>
#include <algorithm>
#include <vector>
#include <string>
#define INF 987654321
using namespace std;
char a[7];
int r = INF;
int main() {
    scanf("%s"&a);
    int v = stoi(a);
    vector<char> vt;
    for (int i = 0; a[i] != '\0'; i++)
        vt.push_back(a[i]);
    sort(vt.begin(), vt.end());
    do {
        for (int i = 0; i < vt.size(); i++)
            a[i] = vt[i];
        int s = stoi(a);
        if (v < s)
            r = min(r, s);
    } while (next_permutation(vt.begin(), vt.end()));
    printf("%d\n", r == INF ? 0 : r);
    return 0;
}
cs


'알고리즘 관련 > BOJ' 카테고리의 다른 글

BOJ)2230 수 고르기  (0) 2017.04.04
BOJ)9463 순열 그래프  (1) 2017.04.03
BOJ)1058 친구  (0) 2017.04.03
BOJ)12100 2048 (Easy)  (0) 2017.03.30
BOJ)13460 구슬탈출2  (6) 2017.03.30