Solution 1) 내 풀이

import java.util.Arrays;

class Solution {
    public int[] solution(int[] arr) {
        int[] answer = new int[Arrays.stream(arr).sum()];
        int idx = 0;
        
        for (int i = 0; i < arr.length; i++) {
            int cnt = 0;
            while (arr[i] != cnt) {
                answer[idx++] = arr[i];
                cnt++;
            }
            cnt = 0;
        } return answer;
    }
}

 

코드 및 문제 리뷰

int 배열의 요소의 수치 만큼 새로운 int 배열에 추가하여 반환하는 문제이다.

 

로직 자체가 어려울건 없었으나 처음에 배열의 크기를 어떻게 지정할지를 좀 고민해봤다.

List 없이 해낼 수 있을 것 같아 구글링해본 결과 Arrays.stream().sum()이 있었다. 

Arrays.stream(int 배열).sum() 할 경우 배열안 요소들의 합을 반환한다.

이를 이용해 처음부터 배열을 생성해 놓고 시작할 수 있었다.

 

+ Recent posts