[SWEA 7728. 다양성 측정]
숫자는 다양성을 가지고 있다. 다양성이란, 숫자를 구성하는 수의 종류를 의미한다.
예를 들어서 1512 라는 숫자는 ‘1’, ‘5’, ‘2’로 구성되어 있기 때문에 다양성이 3이다.
숫자가 주어졌을 때 그 숫자의 다양성을 구하는 프로그램을 작성하라.
C++ 풀이 1차
#include <iostream>
#include <string>
using namespace std;
int cal(int tc) {
int check[10] { 0 };
int answer{ 0 };
while (tc >= 10) {
check[tc % 10]++;
tc = tc / 10;
}
check[tc]++;
for (int i = 0; i < 10; i++) {
if (check[i] != 0)
answer++;
}
return answer;
}
int main() {
int number{ 0 }, tc;
cin >> number;
for (int i = 1; i <= number; i++) {
cin >> tc;
cout << '#' << i << ' ' << cal(tc) << endl;
}
return 0;
}
실행시간이 15ms 가 나와서 check 배열 타입을 변경하였다.
C++ 풀이 2차
#include <iostream>
#include <string>
using namespace std;
int cal(int tc) {
bool check[10] { false };
int answer{ 0 };
while (tc >= 10) {
check[tc % 10] = true;
tc = tc / 10;
}
check[tc] = true;
for (int i = 0; i < 10; i++) {
if (check[i])
answer++;
}
return answer;
}
int main() {
int number{ 0 }, tc;
cin >> number;
for (int i = 1; i <= number; i++) {
cin >> tc;
cout << '#' << i << ' ' << cal(tc) << endl;
}
return 0;
}
13ms...로 끝냈다
문제링크
반응형
'알고리즘 · 코딩' 카테고리의 다른 글
[백준 9095번] 1, 2, 3 더하기 (0) | 2019.08.11 |
---|---|
코딩 테스트 문제 소스 코드 (0) | 2019.08.10 |
[SWEA 1945] 간단한 소인수분해 (0) | 2019.08.10 |
[프로그래머스] 정수 삼각형 (0) | 2019.08.10 |
[백준 11726번] 2 x n 타일링 (0) | 2019.08.10 |