091
[JAVA] 명예의 전당(1) 본문
728x90
🔍자바 : 연습문제 . 명예의 전당(1)
01. 코드 기획 단계
- 명예의 전당 honor 배열을 만들어 명예의 전당 배열과 k까지의 answer 최솟값을 넣어줍니다. 그 뒤 값들은 명예의 전당 최솟값과 비교한 뒤 최솟값보다 작으면 변화없이 answer에 넣어주고, 크다면 최솟값을 변화해준 뒤 다시 최솟값을 구하여 answer에 넣어줍니다.
02. 코드 실행 및 오류 잡기
import java.util.*;
class Solution {
public int[] solution(int k, int[] score) {
int[] answer = new int[score.length];
int[] honor = new int[k];
int min = score[0];
if(k < score.length){
for(int i = 0; i < k; i++){ //명예의 전당 input 다 보이는 곳까지
honor[i] = score[i];
min = Math.min(min, score[i]);
answer[i] = min; //명예의 전당 최솟값
}
Arrays.sort(honor); //명예의 전당, 오름차순
for(int i = k; i < score.length; i++){
if(honor[0] >= score[i]){
answer[i] = honor[0];
} else {
honor[0] = score[i];
Arrays.sort(honor); //인덱스 0값이 최솟값이 됨
answer[i] = honor[0];
}
}
} else {
for(int i = 0; i < score.length; i++){
honor[i] = score[i];
min = Math.min(min, score[i]);
answer[i] = min;
}
}
return answer;
}
}
03. 정리
- 명예의 전당 k가 score.length보다 더 큰 경우도 있기 때문에 위 처럼 명예의 전당 길이 만큼 나타낸 뒤 값을 넣을 예정이라면 따로 조건을 넣어줘야합니다.
728x90
'Coding Test > Programmers(프로그래머스)' 카테고리의 다른 글
[JAVA]성격 유형 검사하기 (2) | 2025.07.08 |
---|---|
[JAVA] 카드 뭉치 (0) | 2025.07.06 |
[JAVA] 옹알이(1) (0) | 2025.07.02 |
[JAVA] 올바른 괄호 (0) | 2025.06.20 |
[SQL] 년, 월, 성별 별 상품 구매 회원 수 확인하기 (0) | 2025.06.08 |