반응형
문제 설명: 아무 원소도 들어있지 않은 빈 배열 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 |