[java]최빈수 구하기 - SWEA 1204
풀이
문제 해석을 하자면,
- 최빈수를 구하자
- 단, 최빈수 여러 개 일 때에는 가장 큰 점수 출력
풀이
- 최빈수 : 제일 많이 나타난 수
- 배열 인덱스에 맞게 숫자 ++ 로 간단히 끝내자
- 복잡도는 O(N) 으로 입력크기(N) 만큼으로 빠르다.
코드
public class 최빈수구하기_1204 {
public static int[] inArr = new int[101]; // 0~100점
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
for(int t=1; t<=T; t++) {
//init
for(int i=0; i<101; i++) inArr[i] = 0;
//input
br.readLine(); // testcase
StringTokenizer stk = new StringTokenizer(br.readLine(), " ");
for(int i=0; i<1000; i++) { // 학생수 : 1000명
int num = Integer.parseInt(stk.nextToken()); // 점수
inArr[num]++;
}
//run
int maxNum = 0; // 최대점수
int maxInArr = 0; // 최빈수
for(int i=0; i<101; i++) {
if(maxInArr <= inArr[i]) {
maxInArr = inArr[i];
maxNum = i;
}
}
//output
sb.append("#"+t+" "+maxNum+"\n");
}
System.out.print(sb);
}
}
느낀점
생략
댓글남기기