itisjustK
코딩과 사람 사는 이야기
itisjustK
전체 방문자
오늘
어제
  • 분류 전체보기 (207)
    • 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠.. (0)
    • Web (43)
      • html & css (9)
      • django & python (15)
      • java script (9)
    • iOS (51)
      • Swift (42)
      • SwiftUI (5)
    • CS (25)
      • 자료구조 (6)
      • 운영체제 (3)
      • 데이터베이스 (9)
      • 네트워크 (7)
    • PS (34)
      • 알고리즘 & 자료구조 (0)
    • Life (36)
    • Retrospective (15)
    • Book (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • POSTECH
  • nosql
  • binding
  • 연결리스트
  • 독립서점
  • SWIFT
  • ios
  • CS
  • CoreData
  • 생활코딩 #이고잉 #HTML #코딩 #개발자
  • crud
  • SwiftUI
  • 생활코딩
  • 개발자
  • mongodb
  • 세그멘테이션
  • 어플
  • AppleDevloperAcademy
  • 킨디
  • 점주

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
itisjustK

코딩과 사람 사는 이야기

[ 프로그래머스 - 타켓 넘버 ] DFS
PS

[ 프로그래머스 - 타켓 넘버 ] DFS

2021. 8. 6. 21:42

 

  • 이 문제와 dfs의 연관 관계?
  • dfs는 재귀와 관련있는데, 재귀를 이 문제에 어떻게 적용?
  • dfs의 흔한 예로 '경로 찾기'가 있는데 '경로 찾기'를 이 문제에 어떻게 변형, 적용?

 

풀이

def dfs(nums, i, n, t):
    ret = 0
    if i==len(nums):
        if n==t: return 1
        else: return 0
    ret += dfs(nums, i+1, n+nums[i], t)
    ret += dfs(nums, i+1, n-nums[i], t)
    return ret

def solution(numbers, target):
    answer = dfs(numbers, 0, 0, target)
    return answer
  • ret를 dfs안에 선언해도 되는 이유

ret는 dfs의 첫 줄에 0으로 선언되면서 초기화된다. 우리는 ret의 누적값을 구해야 하는데, 

'누적'이 되게 하기 위해 재귀에 들어가는 부분에서 ret  += dfs(nums, i+1, n+nums[i], t) 라고 써주었다.

 

 

이 코드를 완벽히 이해하지 못했다 ... 다음에 모각코할때 물어봐야겠다

 

+확실히 아직까지 수학적 논리를 코드로 옮기는 능력이 부족한 것 같다. 이 훈련을 꾸준히 해야겠다

++재귀, dfs, bfs 문제들을 더 많이 풀어봐야 겠다

저작자표시 (새창열림)

'PS' 카테고리의 다른 글

[백준 11726 - 2 x n 타일링] DP  (0) 2021.08.09
DP ( Dynamic Programming, 동적 계획법 )  (0) 2021.08.09
[ 백준 2178 - 미로탐색 ] - bf  (0) 2021.08.06
7주차 [ 음료수 얼려 먹기 ]  (0) 2021.08.06
7주차 [백준 2606 - 바이러스]  (0) 2021.08.05
    'PS' 카테고리의 다른 글
    • [백준 11726 - 2 x n 타일링] DP
    • DP ( Dynamic Programming, 동적 계획법 )
    • [ 백준 2178 - 미로탐색 ] - bf
    • 7주차 [ 음료수 얼려 먹기 ]
    itisjustK
    itisjustK

    티스토리툴바