[swexpert] 1204. 최빈수 구하기 (python, java)

728x90
반응형

1. python 풀이 

 

일단 개수를 반환해주는 Counter로 구했는데 arr.count(x)로 해서 찾아도 되었을 듯 하다 

* 등장 개수가 같다면 더 큰 점수로 해줘야한다. 가장 큰 개수만을 구한다면 most_common을 쓰면 되는데 

이 부분 때문에 for문을 한 번 더 돌아줬다

from collections import Counter

t=int(input())
for _ in range(1,t+1):
    n=int(input())
    arr=list(map(int,input().split()))
    counter=Counter(arr)
    max_cnt,letter=-1,-1
    for x in counter:
        if counter[x]==max_cnt:
            if x>letter:
                letter=x
        if counter[x]>max_cnt:
            max_cnt=counter[x]
            letter=x

    print(f'#{n} {letter}')

2. java 풀이 

 

package com.ssafy.edu;

import java.util.Arrays;
import java.util.Scanner;

public class Solution {

	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		int t=sc.nextInt();
		for (int i = 0; i <t; i++) {
			sc.nextInt();
			int[] arr=new int[101]; // 점수에 대한 범위
			for (int j = 0; j < 1000; j++) {
				int n=sc.nextInt();
				arr[n]+=1;
			}

			int max_score=0;
			int cnt=0;
			for(int j=0;j<=100;j++) {
				if(arr[j]>=cnt) {
					cnt=arr[j];
					if(max_score<j)max_score=j;
				}
			}
			System.out.printf("#%d %d\n",i+1,max_score);
		}
		sc.close();
	}
	
	
}
	


728x90
반응형
TAGS.

Comments