코드 그라데이션

[Lv.0] 뒤에서 5등 위로 본문

Java/알고리즘

[Lv.0] 뒤에서 5등 위로

완벽한 장면 2023. 6. 8. 22:04

https://school.programmers.co.kr/learn/courses/30/lessons/181852

 

프로그래머스

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

programmers.co.kr

 

문제 설명

정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 제외한 수들을 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

 

제한 사항

 

입출력 예

입출력 예 설명

 

아이디어

  • 정렬을 먼저 하고, 조건에 맞는 숫자를 추출해서 가져오기
  • 정렬은 Arrays.sort() -> 기본이 오름차순 정렬
  • 객체는 함수에 넘기면 값이 조작이 가능하다.
  • 그래서 Arrays.sort에 num_list를 넘기면 Arrays.sort는 리턴 값이 따로 없다.
  •  따로 변수 등을 선언할 필요가 없음(바뀐 그 상태)
  • 그런데, 정답으로 만들 배열은 num_list 와 길이가 다름 => 즉 새로운 배열을 하나 만들어야 한다는 소리
  • 그리고 배열의 길이를 현재 주어진 조건 중에서는 num_list의 길이를 활용해서 선언이 가능하겠다.(언제나 5개를 제외한다고 했으므로)

또 다른 아이디어,

answer[0] <= num_list[5]

answer[1] <= num_list[6]

answer[2] <= num_list[7]

answer[3] <= num_list[8]

answer[4] <= num_list[9] 이런 식으로 대응되어야 함.

규칙성을 찾으면

answer[i] = num_list[ i+5 ] 여야 함.

 

나의 코드

import java.util.*
class Solution {
    public int[] solution(int[] num_list) {
        Arrays.sort(num_list);
        int[] answer = new int[num_list.length - 5];
        for(int i=0; i<answer.length; i++) {
            answer[i] = num_list[i+5];
        }
        return answer;
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

'Java > 알고리즘' 카테고리의 다른 글

[Lv.0] 이어 붙인 수  (0) 2023.06.09
아스키 코드 관련  (0) 2023.06.09
[Lv.0] 접두사인지 확인하기  (0) 2023.06.08
[Lv.0] 배열의 유사도  (0) 2023.06.08
[Lv.0] 점의 위치 구하기  (1) 2023.06.07
Comments