배열의 원소만큼 추가하기 Lv. 0

박영준·2023년 5월 31일
0

코딩테스트

목록 보기
177/300
class Solution {
    public int[] solution(int[] arr) {
        int[] answer = {};
        return answer;
    }
}


해결법

방법 1

import java.util.ArrayList;

class Solution {
    public int[] solution(int[] arr) {
    
        ArrayList<Integer> list = new ArrayList<>();

        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i]; j++) {
                list.add(arr[i]);
            }
        }
        
        int[] answer = new int[list.size()];		// 배열 answer 생성
        
        for (int i = 0; i < list.size(); i++) {
            answer[i] = list.get(i);
        }
        
        return answer;
    }
}
  • ArrayList

  • list.add(arr[i])

    • 이대로 출력할 수는 없음
      • List< Integer > 타입을 int[] 로 변환 할 수 없기 때문
    • 따라서, 새로운 배열을 생성해준다.
  • size()

    • ArrayList 에서 길이를 구할 때 사용
  • get() : 출력

참고: 배열, ArrayList

방법 2

class Solution {
    public int[] solution(int[] arr) {
        int[] answer = {};

        int sum = 0;

		// arr의 각 인덱스의 합 = 반환할 인덱스의 길이
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];    
        }
        answer = new int[sum];

        int idx = 0;

        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i]; j++) {
                answer[idx++] = arr[i];
            }
        }

        return answer;
    }
}

배열의 원소만큼 추가하기 Lv. 0

profile
개발자로 거듭나기!

0개의 댓글