코딩_Python(Level.0)

[Level.0] 배열의 원소만큼 추가하기

Hong's_Computer 2026. 3. 12. 11:15
반응형

문제 설명: 아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 양의 정수 배열 arr가 매개변수로 주어질 때, arr의 앞에서부터 차례대로 원소를 보면서 원소가 a라면 X의 맨 뒤에 a를 a번 추가하는 일을 반복한 뒤의 배열 X를 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ arr의 길이 ≤ 100
  • 1 ≤ arr의 원소 ≤ 100

문제 해결

def solution(arr):
    X = []
    for ar in arr:
        for a in range(ar):
            X.append(ar)
    return X

def solution(arr):
    X = []
    for ar in arr:
        X += [ar] * ar
    return X

 

주석: 두 풀이 모두 시간 복잡도는 O(∑arr)로 동일하다. Python의 append를 여러 번 호출하는 것보다 리스트 곱셈(*)과 확장(+=)은 내부적으로 메모리를 한 번에 할당하고 C 루프에서 처리하기 때문에 실행 속도 면에서 훨씬 유리합니다. 따라서 '복잡도 계급'은 같지만 '실제 속도'는 아래 코드가 더 좋다.

반응형

'코딩_Python(Level.0)' 카테고리의 다른 글

[Level.0] 홀수 vs 짝수  (0) 2026.03.12
[Level.0] x 사이의 개수  (0) 2026.03.12
[Level.0] 주사위 게임1  (0) 2026.03.12
[Level.0] 배열 비교하기  (0) 2026.03.12
[Level.0] 배열의 길이에 따라 다른 연산하기  (0) 2026.03.12