Skip to content

[Week03] 김태우#8

Open
kim3360 wants to merge 1 commit into
mainfrom
week3/taewoo
Open

[Week03] 김태우#8
kim3360 wants to merge 1 commit into
mainfrom
week3/taewoo

Conversation

@kim3360

@kim3360 kim3360 commented Apr 7, 2026

Copy link
Copy Markdown
Member

📚 알고리즘 (총 1문제)


📌 문제 1 - Programmers_타겟_넘버

  • 플랫폼: Programmers
  • 난이도: ()

💡 접근 방법

핵심 아이디어

  • 각 숫자마다 + 또는 - 두 가지 선택이 가능하므로, DFS(깊이 우선 탐색)로 모든 경우의 수를 탐색하고 마지막 합이 target과 같으면 카운트한다.

상세 설명

  • dfs(idx, total) 형태로 현재 인덱스와 누적합을 상태로 관리
  • 종료 조건은 idx == len(numbers)일 때이며, 이때 total == target이면 정답을 1 증가
  • 현재 숫자 numbers[idx]에 대해 +를 적용한 경우와 -를 적용한 경우를 각각 재귀 호출하여 완전탐색을 적용

🧠 알게 된 점

  • 경우의 수가 “선택 2개씩 반복” 구조일 때는 DFS/백트래킹으로 상태를 나눠서 구현하면 직관적이다.
  • nonlocal을 사용하면 중첩 함수 내부에서 바깥 변수(answer)를 깔끔하게 갱신할 수 있다.
  • 재귀 함수의 종료 조건을 명확히 두면(인덱스 끝 도달) 로직이 단순해지고 디버깅이 쉬워진다.

⏱️ 복잡도

❗시간복잡도: $O()$

❗공간복잡도: $O()$


@dohy-eon

Copy link
Copy Markdown
Collaborator

@kim3360 pr내용 언제 쓰실거에요.

@kim3360 kim3360 self-assigned this Apr 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants