티스토리 뷰
https://www.acmicpc.net/problem/2529
0 ~ 9 숫자를 1번씩만 사용하여 주어진 부등식을 만족하는 숫자를 만든 뒤 최댓값과 최솟값을 출력하는 문제입니다.
bfs를 활용하여 0 ~ 9의 수 하나씩 넣은 벡터에 대해 다음에 들어올 0 ~ 9 의 수를 탐색하며 아직 해당 벡터에 없는 수이면 부등식을 만족할 때 벡터의 마지막 원소로 새로 넣습니다.
그런 다음 최댓값을 갖는 벡터 (초기값 0000..000), 최솟값을 갖는 벡터 (초기값 999...999)와 비교하여 업데이트합니다.
자리가 더 길었다면 벡터에서 원소 탐색을 할 때 find를 안 썼겠지만, 최대가 10자리이므로 시간 초과 우려는 없을 것 같아 find 함수를 썼습니다.
코드는 다음과 같습니다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 1202 보석 도둑 C++ (0) | 2021.12.10 |
---|---|
15711 환상의 짝꿍 C++ (0) | 2021.12.05 |
백준 2661 좋은수열 C++ (0) | 2021.11.28 |
백준 1422 숫자의 신 C++ (0) | 2021.11.25 |
백준 1701 Cubeditor C++ (0) | 2021.11.23 |
댓글