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;
}
}
첫 번째 반복문 (for loop): 배열 arr의 길이 만큼 반복
두 번째 반복문 (for loop): 현재 원소의 값(arr[i])만큼 반복
결과 리스트에 추가 (result.add(arr[i])): 현재 원소의 값을 결과 리스트에 추가
따라서, 만약 arr[i]가 3이라면, 3번 동안 arr[i]를 결과 리스트에 추가
결과 리스트를 배열로 변환 (int[] answer = new int[result.size()]): 결과 리스트의 크기에 맞는 배열을 생성
배열에 값 할당 (answer[i] = result.get(i)): 결과 리스트의 각 원소를 배열에 할당