기술 블로그

1342번 행운의 문자열 본문

알고리즘 문제/BOJ

1342번 행운의 문자열

parkit 2019. 4. 11. 00:30
728x90
반응형

https://www.acmicpc.net/problem/1342




next_permutation()을 활용하면 된다.


물론 정렬된 상태여야만 한다.


또한, 정렬된 상태도 검사해야하므로, 


do while문으로 해야한다.




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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <queue>
#include <stack>
#include <cstdio>
#include <vector>
#include <cstring>
#include <string>
#include <math.h>
#include <algorithm>
#include <map>
#include <set>
#include <sstream>
#include <tuple>
 
#pragma warning(disable:4996)  
#pragma comment(linker, "/STACK:336777216")
 
using namespace std;
 
string s;
 
int main(void)
{
    int ans = 0;
 
    cin >> s;
 
    sort(s.begin(), s.end());
 
    do
    {
        bool stop = false;
 
        for (int i = 0; i < s.length() - 1; i++)
            if (s.at(i) == s.at(i + 1))
            {
                stop = true;
                break;
            }
        
        if (!stop) ++ans;
 
    } while (next_permutation(s.begin(), s.end()));
 
    printf("%d\n", ans);
 
    return 0;
}
cs








728x90
반응형

'알고리즘 문제 > BOJ' 카테고리의 다른 글

16939번 2×2×2 큐브  (0) 2019.04.12
17130번 토끼가 정보섬에 올라온 이유  (0) 2019.04.11
15663번 N과 M (9)  (0) 2019.04.10
17135번 캐슬 디펜스  (0) 2019.04.09
3184번 양  (0) 2019.04.08