본문 바로가기
Java.APS/APS.Programmers

[Programmers] Lv 0.카운트 다운

by 개발자 아구몬 2023. 11. 27.

문제


💡 문제
정수 start_num 와 end_num가 주어질 때, start_num에서 end_num까지 1씩 감소하는 수들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

 

💡 제한 사항
0 ≤ end_num ≤ start_num ≤ 50

 

입력 (start_num, end_num) 출력
10, 3 [10, 9, 8, 7, 6, 5, 4, 3]

 

풀이


class Solution {
    public int[] solution(int start_num, int end_num) {
        int[] answer = new int[start_num - end_num + 1];
        
        for(int i = 0; i < answer.length; i++){
            answer[i] = start_num--;    
        }
        
        return answer;
    }
}
  • 정해진 갯수의 배열을 선언 후에, 반복문으로 넣어주면 된다.
  • 사실 List를 toArray 메서드로 바꾸려고 했는데 컬렉션 프레임워크는 객체만 넣을 수 있으므로, wrapper 객체인 Integer의 배열로 반환되는 걸 까먹고 있었다.
import java.util.*;

class Solution {
    public List<Integer> solution(int start_num, int end_num) {
        List<Integer> answer = new ArrayList<>();
        
        for(int i = start_num; i >= end_num; i--){
            answer.add(i);
        }
        
        return answer;
    }
}
  • Programmers에서 리스트를 반환하라고 할 때는 굳이 초기에 배열로 주어진다 하더라도, List로 반환값을 바꿀 수 있다. int가 아니라 Integer로 반환해도 정답처리해준다. 개꿀 ! 아주 조금 더 느리지만 훨씬 편하다.