반응형
문제 설명: 아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 길이가 같은 정수 배열 arr과 boolean 배열 flag가 매개변수로 주어질 때, flag를 차례대로 순회하며 flag[i]가 true라면 X의 뒤에 arr[i]를 arr[i] × 2 번 추가하고, flag[i]가 false라면 X에서 마지막 arr[i]개의 원소를 제거한 뒤 X를 return 하는 solution 함수를 작성해 주세요.
제한사항
- 1 ≤ arr의 길이 = flag의 길이 ≤ 100
- arr의 모든 원소는 1 이상 9 이하의 정수입니다.
- 현재 X의 길이보다 더 많은 원소를 빼는 입력은 주어지지 않습니다.
문제 해결
def solution(arr, flag):
X = []
for ar, fla, in zip(arr, flag):
if fla:
X += [ar] * (ar*2)
else:
X = X[:-ar]
return X
주석: 리스트 결합 연산(+)과 반복 연산(*)을 사용해 특정 원소를 지정된 횟수만큼 한꺼번에 추가하며, 삭제 시에는 음수 인덱스 슬라이싱을 활용해 배열의 끝부터 지정된 개수만큼 효율적으로 제거한다.
반응형
'코딩_Python(Level.0)' 카테고리의 다른 글
| [Level.0] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (0) | 2026.03.17 |
|---|---|
| [Level.0] 1로 만들기 (0) | 2026.03.17 |
| [Level.0] 중복된 문자 제거 (0) | 2026.03.17 |
| [Level.0] 합성수 찾기 (0) | 2026.03.17 |
| [Level.0] 글자 지우기 (0) | 2026.03.17 |