블로그 언저리인 무언가
[백준/BOJ] 1342 행운의 문자열 본문
728x90
문제 : 1342 행운의 문자열
어떤 문자열이 주어졌을 때 문자를 재배치해 인접한 문자가 같지 않은
문자열의 경우의 수를 구하는 문제이다.
문자열을 정렬한 후 next_permutation을 이용해
모든 경우의 수를 확인하면 된다.
Code
#include <bits/stdc++.h>
#define ll long long
using namespace std;
string S;
ll ans;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin >> S;
sort(S.begin(),S.end());
do{
ll tmp=0;
for (int i=1;i<S.size()-1;i++){
if (S[i-1]==S[i] || S[i]==S[i+1]){
tmp=1;
break;
}
}
if (tmp)
continue;
ans++;
}while(next_permutation(S.begin(),S.end()));
cout << ans;
return 0;
}
728x90
'Programming > BOJ' 카테고리의 다른 글
[백준/BOJ] 17953 디저트 (0) | 2020.09.25 |
---|---|
[백준/BOJ] 15724 주지수 (0) | 2020.09.24 |
[백준/BOJ] 14499 주사위 굴리기 (0) | 2020.09.23 |
[백준/BOJ] 4811 알약 (0) | 2020.09.22 |
[백준/BOJ] 13703 물벼룩의 생존 확률 (0) | 2020.09.22 |
Comments