본문 바로가기
백준/5001 - 10000

[백준] 5489번 : Numbers(JAVA)

by lms0806 2021. 7. 24.
728x90
반응형

https://www.acmicpc.net/problem/5489

 

5489번: Numbers

You are to write a program, which, given N positive integer values X1, X2, ..., XN, computes the smallest number Xi that appears in the sequence at least as many times as any other number.

www.acmicpc.net

풀이

N을 입력받고 N개의 숫자를 입력받았을 때 가장 작은 수 중 가장 많이 등장한 수를 찾는 문제입니다.

범위가 10000의 수중 가져오는 것이므로 10001크기의 배열을 구해주고 N번 입력받은 수의 위치를 1 더해줍니다.

배열의 크기만큼 for문을 실행해 max를 비교하면서 answer을 구해주면 됩니다.

 

소스코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
		
		int size = Integer.parseInt(br.readLine());
		
		int[] num = new int[10001];
		while(size --> 0) {
			num[Integer.parseInt(br.readLine()) - 1]++;
		}
		
		int max = 0, answer = 0;
		for(int i = 0; i < num.length; i++) {
			if(max < num[i]) {
				max = num[i];
				answer = i + 1;
			}
		}
		System.out.print(answer);
	}
}

 

전체 첫솔! 한 문제입니다!

728x90
반응형

댓글