[프로그래머스] 자바_ 배열의 원소만큼 추가하기

디하·2023년 11월 26일
0

프로그래머스

목록 보기
2/10
post-thumbnail

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

문제

아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 양의 정수 배열 arr가 매개변수로 주어질 때, arr의 앞에서부터 차례대로 원소를 보면서 원소가 a라면 X의 맨 뒤에 a를 a번 추가하는 일을 반복한 뒤의 배열 X를 return 하는 solution 함수를 작성해 주세요.

import java.util.ArrayList;
import java.util.List;

class Solution {
    public int[] solution(int[] arr) {
        
        // 결과를 저장할 리스트 생성
        List<Integer> result = new ArrayList<>();
        
        // 주어진 배열의 각 원소에 대해 반복
        for(int i = 0; i < arr.length; i++){ //1.
            // 현재 원소의 값만큼 반복
            for(int j = 0; j < arr[i]; j++){ //2.
                // 현재 원소를 결과 리스트에 추가
                result.add(arr[i]);//3.
            }
        }
        
        // 결과 리스트를 배열로 변환
        int[] answer = new int[result.size()];//4.
        for(int i = 0; i < result.size(); i++){
            // 결과 리스트의 각 원소를 배열에 할당
            answer[i] = result.get(i); //5.
        }
        
        // 최종 결과 배열 반환
        return answer;
    }
}

  1. 첫 번째 반복문 (for loop): 배열 arr의 길이 만큼 반복

  2. 두 번째 반복문 (for loop): 현재 원소의 값(arr[i])만큼 반복

  3. 결과 리스트에 추가 (result.add(arr[i])): 현재 원소의 값을 결과 리스트에 추가
    따라서, 만약 arr[i]가 3이라면, 3번 동안 arr[i]를 결과 리스트에 추가

  4. 결과 리스트를 배열로 변환 (int[] answer = new int[result.size()]): 결과 리스트의 크기에 맞는 배열을 생성

  5. 배열에 값 할당 (answer[i] = result.get(i)): 결과 리스트의 각 원소를 배열에 할당

profile
🖥️ ⌨️🖱️🩵

0개의 댓글