반응형
[프로그래머스] Java 코딩테스트 연습 - 배열의 원소만큼 추가하기
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/181861
문제
아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 양의 정수 배열 arr가 매개변수로 주어질 때, arr의 앞에서부터 차례대로 원소를 보면서 원소가 a라면 X의 맨 뒤에 a를 a번 추가하는 일을 반복한 뒤의 배열 X를 return하는 solution 함수를 작성해 주세요.
풀이
arr의 원소의 크기가 어느정도인지 알 수 없기 때문에(원소를 몇 번 반복하게 될지 알 수 없기 때문에) List와 ArrayList로 동적 배열 x를 선언했다. 2중 for문으로 arr의 길이만큼 반복하면서 동시에 arr의 각 원소의 크기(값)만큼 반복하도록 했다. add()메서드로 반복마다 x에 arr의 원소들을 추가하도록 했다.
x는 컬렉션인터페이스인 List로 선언된 변수이므로 size() 메서드로 answer 배열의 크기를 지정했다. for문으로 x의 size만큼 반복하면서 각 반복마다 x의 i번째 인덱스에 해당하는 원소를 answer에 할당했다.
소스코드
import java.util.List;
import java.util.ArrayList;
class Solution {
public int[] solution(int[] arr) {
List<Integer> x = new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i]; j++) {
x.add(arr[i]);
}
}
int[] answer = new int[x.size()];
for (int i = 0; i < x.size(); i++) {
answer[i] = x.get(i);
}
return answer;
}
}
반응형
'코딩테스트연습 > [프로그래머스] Java' 카테고리의 다른 글
[프로그래머스] Java 코딩테스트 연습 - 점의 위치 구하기 (0) | 2023.07.16 |
---|---|
[프로그래머스] Java 코딩테스트 연습 - 가위 바위 보 (0) | 2023.07.12 |
[프로그래머스] Java 코딩테스트 연습 - 날짜 비교하기 (0) | 2023.07.06 |
[프로그래머스] Java 코딩테스트 연습 - 편지 (0) | 2023.06.28 |
[프로그래머스] Java 코딩테스트 연습 - 가장 큰 수 찾기 (0) | 2023.06.28 |