알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄
https://school.programmers.co.kr/learn/courses/30/lessons/138477
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
Think🤔
리스트를 받아서 일단 k까지의 명예의 전당에는 그대로 들어가고,
그 이후에는 정렬을 한 뒤 제일 작은 값을 뺴면서 그 뺀 값을 answer[i]에 넣어준다.
Solution✍
import java.util.*;
import java.util.List;
import java.util.Collections;
public class Fame {
public static void main(String[] args) {
Solution s = new Solution();
System.out.println(s.solution(3,new int[]{10, 100, 20, 150, 1, 100, 200}));
}
}
class Solution{
public int[] solution(int k, int[] score){
int[] answer = new int[score.length];
List<Integer> hall = new ArrayList<Integer>();
for(int i=0; i<score.length; i++){
if(i < k){ // 0 1 2 3
hall.add(score[i]);
hall.sort(Collections.reverseOrder());
}else{
hall.add(score[i]);
hall.sort(Collections.reverseOrder());
hall.remove(hall.size());
}
answer[i] = hall.get(hall.size() - 1);
}
System.out.println(Arrays.toString(answer));
return answer;
}
}
Review🤩
컬렉션 클래스는 리버스오더로 하고,
자료형일 경우 박싱 , 언박시을 이용해서 Arrays를 재정의한 후 오버라이드해서 오름차순,내림차순으로 변경 후에 풀어준다.
'Algorithm' 카테고리의 다른 글
[프로그래머스] 코딩테스트 연습연습문제카드 뭉치 (0) | 2023.10.16 |
---|---|
[프로그래머스] 코딩테스트 연습연습문제추억 점수 (0) | 2023.10.16 |
[프로그래머스] 과일 장수 (0) | 2022.12.30 |
[프로그래머스] 가장 가까운 같은 글자 (0) | 2022.12.30 |
[프로그래머스] 크기가 작은 부분 문자열 (0) | 2022.12.29 |