seunghyun Note

[프로그래머스] - 명예의 전당 with JAVA 본문

코딩테스트/백준

[프로그래머스] - 명예의 전당 with JAVA

승숭슝현 2024. 1. 5. 09:22

링크 :https://school.programmers.co.kr/learn/courses/30/lessons/138477

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 풀이

1. score를 순회시킨다.

2. 순회해서 명예의 전당(ArrayList) 내에 원소를 add한다.

3. 원소를 넣고 sort를 한다.(Collections.sort(list))

4. 원소의 갯수가 3개가 넘을 경우 (sort 후에) 끝 값을 제거한다 (list.remove(0))

5. 발표 점수(answer 배열)에 첫번째 값(list.get(0))을 넣는다.

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;

class Solution {
	public int[] solution(int k, int[] score) {
		int[] answer = new int[score.length];

		ArrayList<Integer> list = new ArrayList<Integer>();
		//1. score를 순회시킨다.
		for (int i = 0; i < score.length; i++) {
             // 2. 순회해서 명예의 전당(ArrayList) 내에 원소를 add한다.
			list.add(score[i]);
 			// 3. 원소를 넣고 sort를 한다.(Collections.sort(list))
			Collections.sort(list);
   
            //4. 원소의 갯수가 k개가 넘을 경우 (sort 후에) 끝 값을 제거한다 (list.remove(0))
			if(list.size() > k) {
				list.remove(0);
			}
			answer[i] = list.get(0);
             //5. 발표 점수(answer 배열)에 첫번째 값(list.get(0))을 넣는다
			System.out.println(answer[i]);

		}
		return answer;
	}
}

public class CodingTest {

	public static void main(String[] args) {

		Solution s = new Solution();

		int k = 4;
		int[] score = { 0, 300, 40, 300, 20, 70, 150, 50, 500, 1000};
		s.solution(k, score);
		

	}
}

 

728x90