[알고리즘]/백준

자바 - 구현 - 백준 20113 긴급 회의

broship 2021. 3. 9. 10:43

문제


 

 

 

 

 

 

 

문제해결


import java.util.Scanner;

public class B20113 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int size = sc.nextInt();//총 인원 수
		int[] players = new int[size+1];//투표 포기 0을 포함한 투표 현황
		//투표된 사람 +1
		for(int i=0;i<size;i++) {
			int tmp = sc.nextInt();
			players[tmp]++;
		}
		//가장 큰 값과 해당 인덱스 찾기
		int max = 0;
		int idx = 0;
		for(int i=1;i<=size;i++)
			if(players[i]>max) {
				max = players[i];
				idx = i;
			}
		//가장 큰 값이 중복될 경우 skipped 출력 후 종료
		for(int i=1;i<=size;i++)
			if(idx!=i && players[i]==max) {
				System.out.println("skipped");
				return;
			}
		//가장 큰 값의 idx값 출력 -> 가장 많이 투표받은 사람
		System.out.println(idx);
	}
}

1. 투표 현황 배열을 만든다

2. 투표된 사람의 인덱스 값을 하나씩 증가시킨다

3. 배열에서 가장 큰 값과 인덱스 값을 찾는다

4. 배열을 다시 한번 검사해서 큰 값이 중복되면 skipped 출력 후 종료

5. 큰 값이 중복되지 않으면 해당 인덱스 값 출력