티스토리 뷰
1342번: 행운의 문자열
민식이와 준영이는 자기 방에서 문자열을 공부하고 있다. 민식이가 말하길 인접해 있는 모든 문자가 같지 않은 문자열을 행운의 문자열이라고 한다고 한다. 준영이는 문자열 S를 분석하기 시작
www.acmicpc.net
문제풀이
행운의 문자열은 인접해 있는 모든 문자가 같지 않은 문자열을 말한다.
문자열 S를 정렬해준 후 next_permutation으로 가능한 모든 배치를 검사하면서 행운의 문자열이 몇 개 나오는지 찾으면 된다.
C++ 코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <string> | |
#include <algorithm> | |
using namespace std; | |
int main() | |
{ | |
ios::sync_with_stdio(false); | |
cin.tie(NULL); | |
cout.tie(NULL); | |
string s; | |
cin >> s; | |
sort(s.begin(), s.end()); | |
int answer = 0; | |
do { | |
bool lucky = true; | |
for (int i = 0; i < s.size() - 1; i++) { | |
if (s[i] == s[i + 1]) { | |
lucky = false; | |
break; | |
} | |
} | |
if (lucky) | |
answer++; | |
} while (next_permutation(s.begin(), s.end())); | |
cout << answer; | |
return 0; | |
} |
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ 1516] 게임 개발 C++ (0) | 2021.07.16 |
---|---|
[BOJ 3020] 개똥벌레 C++ (0) | 2021.07.16 |
[BOJ 1205] 등수 구하기 C++ (0) | 2021.07.15 |
[BOJ 10867] 중복 빼고 정렬하기 C++ (0) | 2021.07.15 |
[BOJ 1026] 보물 C++ (0) | 2021.07.15 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Kotlin
- 배열
- 스택
- Java
- C++
- 그래프
- 구현
- 브루트포스
- BFS
- 이분 탐색
- 정렬
- 문자열
- dfs
- Two Pointer
- BOJ
- programmers
- 백준
- 자바
- 알고리즘
- 투 포인터
- 두 포인터
- algorithm
- SWEA
- 분할 정복
- SW Expert Academy
- 프로그래머스
- 큐
- 재귀
- 트리
- 위상 정렬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함