[Programmers] #181861 - 배열의 원소만큼 추가하기 [Java][C++][Python]
[Programmers] #181861 - 배열의 원소만큼 추가하기 [Java][C++][Python]
1. 아이디어
양의 정수 배열 arr이 주어질 때, arr의 앞에서부터 차례대로 해당 원소를 해당 원소의 값만큼 순서대로 빈 배열에 담아서 반환하면 되는 간단한 문제다.
2. 복잡도
| 접근 | 시간 | 공간 |
|---|---|---|
| 풀이 | $O(N \times M)$ | $O(N \times M)$ |
($N$ = arr의 길이, $M$ = arr 원소의 최댓값)
3. 코드
풀이 [Java][C++][Python]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
List<Integer> list = new ArrayList<>();
for (int x : arr) {
for (int i = 0; i < x; i++) {
list.add(x);
}
}
return list.stream().mapToInt(Integer::intValue).toArray();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <bits/stdc++.h>
using namespace std;
vector<int> solution(vector<int> arr) {
vector<int> v;
for (int x : arr) {
for (int i = 0; i < x; i++) {
v.push_back(x);
}
}
return v;
}
1
2
def solution(arr):
return [x for x in arr for _ in range(x)]
This post is licensed under CC BY 4.0 by the author.