알고리즘
[C++] 백준 5671번 호텔 방 번호
J3SUNG
2019. 11. 5. 13:02
728x90
a부터 b까지의 수 중에서 같은 숫자가 안 들어가는 수들의 개수를 구하는 문제입니다.
0~5000까지 미리 체크한 뒤에 카운트를 해주어서 결과를 도출했습니다.
테스트케이스의 종료에 대한 내용이 없으므로 EOF를 받으면 종료해줍니다.
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
bool flag;
bool arr[5010] = { false, };
int num;
int count = 0;
int result;
int x, y;
int a[10];
string temp;
for (int i = 0; i < 5010; ++i) {
flag = false;
num = i;
memset(a, -1, sizeof(a));
while (num != 0) {
++a[num % 10];
if (a[num % 10] > 0) {
flag = true;
break;
}
num /= 10;
}
if (!flag) {
arr[i] = true;
++count;
}
}
while (scanf("%d%d", &x, &y) != EOF) {
result = 0;
for (int i = x; i <= y; ++i) {
if (arr[i]) {
++result;
}
}
cout << result << endl;
}
return 0;
}