[programmers] 배열의 원소만큼 추가하기

J-Cheol·2023년 11월 13일
0

프로그래머스

목록 보기
16/27
post-thumbnail

문제


프로그래머스 문제링크

풀이 코드


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

class Solution {
    public int[] solution(int[] arr) {
        List<Integer> answer = new ArrayList<>();
        int arr_index = 0;               
        while(arr_index < arr.length)
        {
            int answer_index = 0;
            while(answer_index < arr[arr_index])
            {
                answer.add(arr[arr_index]);
                answer_index++;
            }
            arr_index++;
        }
       
        int[] result = new int[answer.size()];
        int idx = 0;
        while (idx < answer.size())
        {
            result[idx] = answer.get(idx);
            idx++;
        }
        return result;
    }
}

리뷰


  1. arr배열 하나에 들어있는 숫자만큼 배열을 추가하는 문제입니다.
    arr[0] = 5 라면 int[] answer = {5, 5, 5, 5, 5} 이런식으로 배열을 추가하는 방식입니다.
  2. List<Integer>는 해당 List가 정수형(Integer)의 원소를 가지는 List임을 나타냅니다.
    2-1. ArrayList는 크기를 동적으로 조절할 수 있는 배열 기반의 리스트입니다.
    2-2. 정수를 원소로 가지는 동적 배열이 되며, 필요에 따라 크기가 자동으로 조절될 수 있습니다.
  3. 이중 While문을 사용하여 n번째 index에 있는 값을 answer에 추가해줍니다.
    3-1. answer_index < arr[arr_index]를 해주어 그 값만큼 answer에 값을 추가합니다.
    3-2. 3-1이 완료된 후 arr_index가 증가하여 다음 arr index에 접근하여 3-1을 반복합니다.
  4. 문제에서 int배열 형태로 반환을 해주어야하기에 result라는 int배열을 생성하여 List타입의 answer를 result에 대입하여 문제를 마칩니다.
profile
신입 백엔드 개발자(JAVA, Spring Boot, MYSQL)

0개의 댓글