programmers.co.kr/learn/courses/30/lessons/43165?language=python3
코딩테스트 연습 - 타겟 넘버
n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+
programmers.co.kr
< problem >
n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.
-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-1 = 3
사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요.
< constraints >
- 주어지는 숫자의 개수는 2개 이상 20개 이하입니다.
- 각 숫자는 1 이상 50 이하인 자연수입니다.
- 타겟 넘버는 1 이상 1000 이하인 자연수입니다.
< example >
< solution ① > just simple
- 처음에는 [0]만 추가한 후 각 배열에 있는 모든 수와 합, 차를 계산하여 각 subTree에 추가
- root = subTree 한 후 for문 반복
- root에 저장된 계산 결과 중 target 값과 같은 것이 몇 개인지 연산 후 return
ⓒ ⓞ ⓓ ⓔ
ⓣ ⓔ ⓢ ⓣ
'Python ◡̈ > 차근차근 Python' 카테고리의 다른 글
[programmers] python Hash 전화번호목록 (0) | 2021.04.29 |
---|---|
[programmers] python Hash 위장 (0) | 2021.04.28 |
[programmers] python DFS/BFS 네트워크 (0) | 2021.04.07 |
[programmers] python stack/queue 스택/큐 주식가격 (0) | 2021.03.31 |
[programmers] python 스택/큐 stack/queue 프린터 (0) | 2021.03.31 |