문제 풀이
이 문제는 전형적으로 빈도수를 체크하는 문제이다.
빈도수를 체크하는 문제에서는 1차원 배열을 만들어주고 그 배열의 index에 +1만큼 더해주면서 빈도수를 증가시켜주면 된다.
입력을 최소 1000개 받아야 하기 때문에 시간의 효율성을 위해 bufferedReader를 사용하였다.
점수를 입력받고 해당 점수를 +1씩 증가시켜 준다. 그리고 제일 많은 빈도수를 가진 수를 구하고 그 해당 index값까지 함께 저장하면 된다.
package D2;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class D2_1285 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for (int tc = 1; tc <= T; tc++) {
int T2=Integer.parseInt(br.readLine());
int[] used=new int[101];
int score=0;
StringTokenizer st=new StringTokenizer(br.readLine());
for(int i=0;i<1000;i++) {
score=Integer.parseInt(st.nextToken());
used[score]+=1;
}
int max=0;
int ans=0;
for(int i=0;i<101;i++) {
if(max<=used[i]) {
max=used[i];
ans=i;
}
}
System.out.printf("#%d %d\n",tc,ans);
}
}
}
이걸로 D1,D2 모두 완료!!
이제 D3을 정복해야 겠다!!
'Algorithm(알고리즘) > SWEA(SW Expert Academy)' 카테고리의 다른 글
[SWEA][Java][D4][최소 신장 트리,크루스칼] 1251 - 하나로 (0) | 2021.03.29 |
---|---|
[SWEA][Java][D3][시물레이션] 1873 - 상호의 배틀필드 (0) | 2021.02.03 |
[SWEA][Java][D2] 1954 - 달팽이 숫자 (0) | 2021.01.24 |
[SWEA][Java][D2] 1983 - 조교의 성적 매기기 (HashMap) (0) | 2021.01.18 |
[SWEA][Java][D2] 2001 - 파리 퇴치 (0) | 2021.01.17 |