알고리즘
[JAVA] [SWEA] 7728. 다양성 측정
4NIng
2019. 6. 4. 20:55
숫자는 다양성을 가지고 있다. 다양성이란, 숫자를 구성하는 수의 종류를 의미한다.
예를 들어서 1512 라는 숫자는 ‘1’, ‘5’, ‘2’로 구성되어 있기 때문에 다양성이 3이다.
숫자가 주어졌을 때 그 숫자의 다양성을 구하는 프로그램을 작성하라.
이 문제의 경우 단순하게 다양성이 최소 1 ~ 10이란 것을 알 수 있다.
이를 이용하여 boolean[] 배열 10개를 만들어서 아직 숫자가 나오지 않았을 경우( boolean 배열의 값이 false 인 경우 )
cnt를 증가시키면 된다.
이를 코드로 나타내면 간단하게 다음과 같이 나온다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
public class D3Solution7728 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
String[] s = null;
boolean[] flag = new boolean[10];
int cnt = 0;
int num = 0;
for(int t=1; t<=T; t++) {
cnt = 0;
Arrays.fill(flag,false);
s = br.readLine().split("");
for(int i=0; i<s.length; i++) {
num = Integer.parseInt(s[i]);
if(!flag[num]) {
cnt++;
}
if(cnt >= 10) {
break;
}
flag[num] = true;
}
bw.write("#"+t+" "+cnt+"\n");
}
br.close();
bw.close();
}
}