일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- AWS S3
- S3
- EC2
- 2차 코딩테스트
- METACLASS
- 프로그래머스
- springboot 3.0.0
- 코딩테스트
- classproperty
- DB
- depends
- TypeError: 'property' object is not iterable
- 우아한테크코스 2차
- 재귀함수가 뭔가요
- Django
- depends_on
- docker-compose
- AWS
- classmethod
- docker
- python all testcode
- python
- MySQL server on 'db' (115)
- javascript
- github
- OperationalError
- Spring
- 우아한 테크코스 2차 합격
- github skyline
- 갓재석
Archives
hanbin.dev
[코딩테스트] 타겟 넘버 with Python 본문
아이디어
DFS 문제이다.
예를 들어numbers : [ 1, 1, 1 ],target : 1이 들어왔다면 아래와 같은 이진 트리 구조를 갖는다.
노드의 종점에서 target 값과 비교해 같다면 answer에 +1을 해주는 것이다.
문제 풀이 코드
def solution(numbers, target):
answer = 0
def dfs(current_total, current_index, sign): # dfs(0,0,1)
nonlocal answer
current_total += numbers[current_index] * sign
if len(numbers) <= current_index + 1: # 1
if current_total == target:
answer += 1
else: # 2
dfs(current_total, current_index + 1, 1)
dfs(current_total, current_index + 1, -1)
return
dfs(0,0,1)
dfs(0,0,-1)
return answer
#1
다음 인덱스가 존재하지 않을 때 (노드의 종점일때 )
#2
다음 인덱스가 존재 할 때 (노드의 종점이 아닐 때)
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 프로그래머스 크레인 인형뽑기 with Python (0) | 2021.05.20 |
---|---|
[코딩테스트] 프로그래머스 월간 코드 챌린지 내적 with Python (0) | 2021.05.14 |
[코딩테스트] 프로그래머스 더 맵게 with Python (0) | 2021.05.12 |
[코딩테스트] 전화번호 목록 with Python (0) | 2021.05.11 |
[코딩테스트] 프로그래머스 프린터 with Python (0) | 2021.05.10 |