코딩 공부/백준

[백준][C++] 9081 단어 맞추기

김 정 환 2021. 4. 20. 18:39
반응형

www.acmicpc.net/problem/9081

 

9081번: 단어 맞추기

입력의 첫 줄에는 테스트 케이스의 개수 T (1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 하나의 단어가 한 줄로 주어진다. 단어는 알파벳 A~Z 대문자로만 이루어지며 항상 공백이 없는 연속된 알

www.acmicpc.net

 

 

 

알고리즘 종류

구현

 

 

사고 과정

next_permutation으로 해결하면 너무 쉽게 해결할 수 있다는 것을 알았습니다.  next_permutation을 이용하면 순열을 쉽게 구할 수 있습니다.

 

이 문제의 경우 순열에서 2번째로 생성된 것을 출력하면 됩니다. 1번째는 자기 자신입니다.

 

 

 

구현(C++)

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
#include <iostream>
#include <string>
#include <algorithm>
 
using namespace std;
 
int n;
 
int main(void){
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    
    cin >> n;
    
    while(n--){
        string str, ans;
        int cnt = 0;
        
        cin >> str;
        
        do{
            ans = str;
            if(++cnt == 2break;
        }while(next_permutation(str.begin(), str.end()));
        
        cout << ans << "\n";
    }
}
cs
반응형

'코딩 공부 > 백준' 카테고리의 다른 글

[백준][C++] 11000 강의실 배정  (0) 2021.04.21
[백준][C++] 1918 후위 표기식  (0) 2021.04.20
[백준][C++] 18119 단어 암기  (0) 2021.04.20
[백준][C++] 1062 가르침  (0) 2021.04.19
[백준][C++] 1941 소문난 칠공주  (0) 2021.04.19