10씩 나눠서 나머지를 구하면서 각 자릿수를 구한다.
그리고 해당 자릿수를 index로 가지는 boolean 타입 배열의 값을 true로 변경한다.
그러면 한번이라도 해당 숫자가 발견되면 해당 숫자를 index로 가지는 배열의 값이 true가 되므로, 배열을 돌면서 true인 index의 개수를 구하면 된다.
#include <iostream>
#include <ios>
using namespace std;
int T, input, rest;
int main() {
cin.tie(0); ios::sync_with_stdio(0);
cin >> T;
for (int tc = 1; tc <= T; tc++) {
cin >> input;
cout << '#' << tc << ' ' << getAnswer() << "\n";
}
return 0;
}
int getAnswer() {
int result = 0;
bool checkArr[10] = { false };
while (1) {
rest = input % 10;
checkArr[rest] = true;
if (input / 10 == 0) {
break;
}
else {
input = input / 10;
}
}
for (int idx = 0; idx < 10; idx++) {
if (checkArr[idx] == true) result++;
}
return result;
}
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA] 8888. 시험 (0) | 2020.02.16 |
---|---|
[SWEA] 9229. 한빈이와 Spot Mart (0) | 2020.02.15 |
[SWEA] 6692. 다솔이의 월급 상자 (*소수점 자릿 수 조정) (0) | 2019.05.07 |
[SWEA] 5603. 건초더미 (0) | 2019.05.06 |
[SWEA] 3142. 영준이와 신비한 뿔의 숲 (0) | 2019.05.06 |
댓글