반응형
https://www.acmicpc.net/problem/5671
모든 경우의 수를 탐색하는 brute_force문제였습니다.
📕 풀이방법
📔 입력 및 초기화
n, m, ans를 선언한 후 EOF가 나올 때까지 n, m에 입력받습니다.
📔 풀이과정
1. n이상 m이하의 범위로 for loop를 수행하며 유효한 방 번호인지 확인해줍니다.
2. 유효여부는 isValid함수를 수행해 각 자리 수 vector cnt를 지역변수로 선언하여 모든 수가 2개 미만으로 나오는지 확인해주면 됩니다.
3. isValid라면 ans++해줍니다.
📔 정답출력
ans를 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int n, m, ans;
bool isValid(string room){
vector <int> cnt(10,0);
for(int i = 0; i < room.size(); i++)
cnt[room[i] - '0']++;
for(int i = 0; i < 10; i++)
if(cnt[i] >= 2) return false;
return true;
}
int main(){
while(cin >> n >> m){
ans = 0;
for(int i = n; i <= m; i++){
string room = to_string(i);
if(isValid(room)) ans++;
}
cout << ans << '\n';
}
}
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - 백준(BOJ) 19947 : 투자의 귀재 배주형 (0) | 2022.05.06 |
---|---|
(C++) - 백준(BOJ) 2246 : 콘도 선정 (0) | 2022.05.02 |
(C++) - 백준(BOJ) 16173 : 점프왕 쩰리 (Small) (0) | 2022.04.27 |
(C++) - 백준(BOJ) 1543 : 문서 검색 (0) | 2022.04.22 |
(C++) - 백준(BOJ) 14912 : 숫자 빈도수 (0) | 2022.04.20 |