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;
}
'알고리즘' 카테고리의 다른 글
[C++] 백준 4606번 The Seven Percent Solution (0) | 2019.11.05 |
---|---|
[C++] 백준 2037번 문자메시지 (0) | 2019.11.05 |
[C++] 백준 1855번 암호 (0) | 2019.11.05 |
[C++] 백준 14710번 고장난 시계 (0) | 2019.11.05 |
[C++] 백준 4659번 비밀번호 발음하기 (0) | 2019.11.05 |