Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- KAKAO
- Scienceplots
- knn
- Python
- 논문editor
- 에러해결
- Mae
- iNT
- MAPE
- n_sample
- 프로그래머스
- python 갯수세기
- RMES
- TypeError
- 논문
- mes
- 파이썬을파이썬답게
- PAPER
- n_neighbors
- 스택
- 코테
- Pycaret
- 논문작성
- Overleaf
- Alignments
- 평가지표
- 카카오
- mMAPE
- Tire
- SMAPE
Archives
- Today
- Total
EunGyeongKim
[깊이/너비 우선 탐색]타겟 넘버 본문
더 많은 코드 (https://github.com/EunGyeongKim/TIL)
GitHub - EunGyeongKim/TIL: Today I Learne
Today I Learne. Contribute to EunGyeongKim/TIL development by creating an account on GitHub.
github.com
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 설명
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 함수를 작성해주세요.
2. 제한사항
- 주어지는 숫자의 개수는 2개 이상 20개 이하입니다.
- 각 숫자는 1 이상 50 이하인 자연수입니다.
- 타겟 넘버는 1 이상 1000 이하인 자연수입니다.
3. 입출력 예
numbers | target | return |
---|---|---|
[1, 1, 1, 1, 1] | 3 | 5 |
[4, 1, 2, 1] | 4 | 2 |
4. 코드
def solution(numbers, target):
count = 0
def dfs(len_num, sign, sum):
nonlocal count
if len_num == len(numbers):
if sum == target:
count += 1
return
sum = sum + numbers[len_num]*sign
for i in [-1, +1]:
dfs(len_num+1, i, sum)
for sing in [-1, 1]:
dfs(0, sing, 0)
return count//2
'코딩테스트 > programmers' 카테고리의 다른 글
[level 0]분수의 덧셈 (0) | 2022.10.10 |
---|---|
[깊이/너비 우선 탐색(DFS/BFS)]게임 맵 최단거리 (0) | 2022.10.10 |
[연습문제]줄 서는 방법 (1) | 2022.09.25 |
[스택/큐] 프린터 (1) | 2022.09.25 |
[summer/winter] 점프와 순간 이동 (0) | 2022.09.24 |
Comments