Dev.baelanche

[백준 1713] 후보 추천하기 본문

Data Structure & Algorithm/PS - JAVA

[백준 1713] 후보 추천하기

baelanche 2019. 4. 27. 20:48
반응형

 

 

규칙에 따라 구현하는 문제이다.

사진틀 정보를 담을 배열은 순서가 보장되고 동적크기를 가진 ArrayList 를 사용했다.

학생 번호와 추천수를 담은 객체를 사용하였고 번호에 따른 정렬을 내부에서 구현했다.

 

 

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		ArrayList<Student> list = new ArrayList<Student>();
		for(int i=0; i<n; i++) list.add(new Student(0, 0));
		
		int m = sc.nextInt();
		while(m-->0) {
			int rec = sc.nextInt();
			boolean st = false;
			for(int i=0; i<list.size(); i++)
				if(list.get(i).no == rec) {
					list.get(i).recommend++;
					st = true;
				}
			if(st) continue;
			list.add(new Student(rec, 1));
			int min = 1001;
			for(int i=0; i<list.size() - 1; i++)
				if(list.get(i).recommend < min)
					min = list.get(i).recommend;
			for(int i=0; i<list.size() - 1; i++)
				if(list.get(i).recommend == min) {
					list.remove(i);
					break;
				}
		}
		Collections.sort(list);
		for(int i=0; i<list.size(); i++)
			if(list.get(i).no == 0) continue;
			else System.out.print(list.get(i).no + " ");

	}

	static class Student implements Comparable<Student> {
		int no;
		int recommend;
		
		Student(int no, int recommend) {
			this.no = no;
			this.recommend = recommend;
		}
		
		@Override
		public int compareTo(Student s) {
			if(this.no > s.no)
				return 1; //오름차순
			return -1;
		}
	}

}
반응형

'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글

[백준 1780] 종이의 개수  (0) 2019.05.03
[백준 1629] 곱셈  (0) 2019.05.03
[백준 2823] 유턴 싫어  (2) 2019.04.27
[백준 9324] 진짜 메세지  (0) 2019.04.27
[백준 3054] 피터팬 프레임  (0) 2019.04.27
Comments