[SWEA / Java] 1204. 최빈수 구하기

이하얀·2024년 4월 30일
0

🧢 SWEA

목록 보기
1/10

💡 Info



💭 문제 이해

  • 주어지는 수 분포에 따라 최빈수 구하기

📥입력 조건

  • 첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
  • 각 테스트 케이스의 첫 줄에는 테스트 케이스의 번호가 주어지고 그 다음 줄부터는 점수가 주어진다.
10
1
41 85 72 38 80 69 65 68 96 22 49 67 51 61 63 87 66 24 80 83 71 60 64 52 90
...

📤출력 조건

  • #부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 테스트 케이스에 대한 답을 출력한다.
#1 71
#2 76
...


💭 생각한 알고리즘

실제 풀이 시간 : 30분

  • 100점까지의 점수 개수 저장
  • 최대 1000명까지 제한
  • 최빈값 변수를 통해 계산
import java.util.Scanner;
import java.io.FileInputStream;

class Solution
{
	public static void main(String args[]) throws Exception
	{

		Scanner sc = new Scanner(System.in);
		int T;
		T=sc.nextInt();

		for(int test_case = 1; test_case <= T; test_case++)
		{
			sc.nextInt();
			int[] score = new int[101]; //100점까지 점수 의 개수 저장
			 
			for(int i=0; i<1000; i++) { //1000명까지 제한
				 score[sc.nextInt()]++;
			 }
			
			 int most=0;//최빈값
			 for(int i=0; i < score.length; i++) {
				 if(score[i]>=most) {
					 most = score[i];
				 }
			 }
			 System.out.println("#" + test_case + " " + most);
		}
	}
}


❌ 오답체크

  • 바로 most를 출력하니 모든 테스트가 통과하지 못하는 문제 발생
  • result로 한번 더 넘겨주는 것으로 해결
     int most=0, result=0; //최빈값과 최빈값인 점수 저장 변수
    				 for(int i=0; i < score.length; i++) {
    					 if(score[i]>=most) {
    						 most = score[i];
    						 result = i;
    					 }
    				 }
    				 System.out.println("#" + test_case + " " + result);


💭 최종 풀이

  • 100점까지의 점수 개수 저장
  • 최대 1000명까지 제한
  • 최빈값, 최빈값의 결과를 담는 변수를 통해 계산
import java.util.Scanner;
import java.io.FileInputStream;

class Solution
{
	public static void main(String args[]) throws Exception
	{

		Scanner sc = new Scanner(System.in);
		int T;
		T=sc.nextInt();

		for(int test_case = 1; test_case <= T; test_case++)
		{
			sc.nextInt();
			int[] score = new int[101]; //100점까지 점수 의 개수 저장
			 
			for(int i=0; i<1000; i++) { //1000명까지 제한
				 score[sc.nextInt()]++;
			 }
			
			 int most=0, result=0; //최빈값과 최빈값인 점수 저장 변수
			 for(int i=0; i < score.length; i++) {
				 if(score[i]>=most) {
					 most = score[i];
					 result = i;
				 }
			 }
			 System.out.println("#" + test_case + " " + result);
		}
	}
}


profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE 개발 기록 노트☘️

0개의 댓글