알고리즘 · 코딩
[SWEA 7728] 다양성 측정
G A
2019. 8. 10. 03:30
[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...로 끝냈다
문제링크
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
반응형