티스토리 뷰
arr의 첫 번째 요소가 3이고 flag가 true이므로 3을 (3*2)번 추가한다. 그리고 arr의 두 번째 요소가 2이고 flag가 false이므로 존재하는 요소에 마지막에서 2번 삭제한다.
추가하는 건 어떻게든 했는데 마지막 원소 몇 개를 제거하는게 잘 안돼서 답답했다.
결국 찾아보니 삭제를 하지 않고 뒤에 몇 개만 빼고 앞에서부터 그냥 answer에 넣어주는 것이었다...!!!
def solution(arr, flag):
answer = []
for i in range(len(flag)):
if flag[i] == True: #왜 if flag[i]: 이렇게만 해도 가능할까?
answer.extend([arr[i]]*arr[i]*2)
else:
answer = answer[:-arr[i]] #마지막을 빼지않고 처음부터 뺀 만큼만을 answer로 한다.
return answer
'Programmers > 코딩 기초 트레이닝' 카테고리의 다른 글
[프로그래머스] 조건 문자열 (0) | 2024.02.15 |
---|---|
[프로그래머스] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (0) | 2024.02.14 |
[프로그래머스] 이차원 배열 대각선 순회하기 (0) | 2024.02.14 |
[프로그래머스] 수열과 구간 쿼리 1 (1) | 2024.02.14 |
[프로그래머스] 특별한 이차원 배열 1 (1) | 2024.02.14 |