Post

[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.