https://school.programmers.co.kr/learn/courses/30/lessons/43165
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 접근
새로운 리스트를 만들어 numbers의 원소 각각에 +, - 의 결과를 담고 target과 일치하는 개수를 카운팅
코드
def solution(numbers, target):
answer = 0
leaves = [0]
for i in numbers:
tmp = []
for j in leaves:
tmp.append(j + i)
tmp.append(j - i)
leaves = tmp
print(leaves)
for leaf in leaves:
if leaf == target:
answer += 1
return answer
print(solution([1,1,1,1,1],3))
회고
자꾸 빈 리스트를 할당할 때, 이중 반복문이면 어디에 선언해야 할지 너무 헷갈린다.
루프 내에서 tmp를 선언하면 numbers의 각 요소에 대한 새로운 반복마다 빈 리스트로 초기화되어(이전 결과와 무관하게!!) 현재 루프 반복에 관련된 조합을 정확하게 저장할 수 있다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스]Lv2. 도넛과 막대그래프(Python) (0) | 2024.01.31 |
---|---|
[프로그래머스]Lv.2 피로도(Python) (0) | 2024.01.02 |
[프로그래머스]Lv.2 모음사전(Python) (0) | 2024.01.02 |
[프로그래머스]Lv.2 카펫(Python) (0) | 2023.12.30 |
[프로그래머스]Lv.2 소수 찾기(Python) (0) | 2023.12.30 |