[프로그래머스/Java] Lv.0 카운트 업

febCho·2024년 3월 4일
0

코딩테스트

목록 보기
33/253
post-thumbnail

문제

정수 start_num와 end_num가 주어질 때, start_num부터 end_num까지의 숫자를 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

- 제한사항

  • 0 ≤ start_num ≤ end_num ≤ 50

풀이

문제를 풀고 분명 더 좋은 답들이 있을 것 같다는 생각에 다른 분들의 풀이를 찾아 봤고, 이번에도 내가 너무 복잡하게 풀었다는 걸 깨달았다. 흑흑

import java.util.*;

class Solution {
    public int[] solution(int start_num, int end_num) {
        List<Integer> result = new ArrayList<>();
        
        for(int i=start_num;i<=end_num;i++){
            result.add(i);
        }
        
        int[] answer = new int[result.size()];
        for(int i=0;i<result.size();i++){
            answer[i] = result.get(i);
        }
        
        return answer;
    }
}

예를 들자면 이런 거... i가 1씩 증가하니까 루프를 돌 때마다 start_num에 i를 더해주면 된다는 걸 왜 생각하지 못했을까. new int[end - start + 1]까지는 생각했었는데.

class Solution {
    public int[] solution(int start, int end) {
        int[] answer = new int[end - start + 1];
        for (int i = 0; i < answer.length; i++) {
            answer[i] = start + i;
        }
        return answer;
    }
}

결과

결과

profile
Done is better than perfect.

0개의 댓글