[SWEA|파이썬] 2817. 부분 수열의 합 (D3)

2023. 5. 9. 22:50·Problem Solving/SWEA
반응형
문제

https://tinyurl.com/2ozhj4hf

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

🐍파이썬
def dfs(depth, hap):
    global ans
    if hap == k:
        ans += 1
        return
    if depth == n:
        return
    a = arr[depth]
    dfs(depth+1, a+hap) #해당 수 선택하는 경우
    dfs(depth+1, hap) #해당 수 선택하지 않는 경우

T = int(input())
for test_case in range(1, T + 1):
    ans = 0
    n, k = map(int, input().split())
    arr = list(map(int, input().split()))
    ans = 0
    dfs(0, 0)
    print("#{} {}".format(test_case, ans))

이전에 풀었던 [SWEA|파이썬] 5215. 햄버거 다이어트 (D3) 와 동일한 방식으로 풀었다. 

원하는 수의 합에 도달할 때까지 깊이우선탐색을 하는 문제이다.

원하는 수의 합인 hap과 k가 동일하다면 ans에 1을 더해 횟수를 카운트해주었다.

또한 더 이상 깊이 들어갈 수 없을 때는(=마지막 노드까지 탐색했는데도 hap==k를 찾지 못한 경우)에는 ans+1 없이 return을 진행했다.

arr[depth]의 수를 선택하는 경우와 그렇지 않은 경우 모두 dfs를 진행해 모든 경우의 수를 탐색하였다.

 

 

 

 

 

👇 비슷한 풀이방식의 문제 더보기

[프로그래머스 | 파이썬 / 자바스크립트] 타겟 넘버(깊이/너비 우선 탐색(DFS/BFS)/level 2)

 

[프로그래머스 | 파이썬 / 자바스크립트] 타겟 넘버(깊이/너비 우선 탐색(DFS/BFS)/level 2)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘

florescene.tistory.com

반응형
저작자표시 비영리 변경금지 (새창열림)

'Problem Solving > SWEA' 카테고리의 다른 글

[SWEA|파이썬] 1216. [S/W 문제해결 기본] 3일차 - 회문2 (D3)  (8) 2023.05.11
[SWEA|파이썬] 1225. [S/W 문제해결 기본] 7일차 - 암호생성기 (D3)  (0) 2023.05.10
[SWEA|파이썬] 1220. [S/W 문제해결 기본] 5일차 - Magnetic (D3)  (0) 2023.05.10
[SWEA|파이썬] 1209. [S/W 문제해결 기본] 2일차 - Sum (D3)  (0) 2023.05.09
[SWEA|파이썬] 1215. [S/W 문제해결 기본] 3일차 - 회문1 (D3)  (0) 2023.05.08
[SWEA|파이썬] 2805. 농작물 수확하기 (D3)  (0) 2023.05.08
'Problem Solving/SWEA' 카테고리의 다른 글
  • [SWEA|파이썬] 1225. [S/W 문제해결 기본] 7일차 - 암호생성기 (D3)
  • [SWEA|파이썬] 1220. [S/W 문제해결 기본] 5일차 - Magnetic (D3)
  • [SWEA|파이썬] 1209. [S/W 문제해결 기본] 2일차 - Sum (D3)
  • [SWEA|파이썬] 1215. [S/W 문제해결 기본] 3일차 - 회문1 (D3)
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
    반응형
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 프로그래밍
        • Programming
        • C | C++
        • Java
        • Python
      • 웹 프로그래밍
        • HTML | CSS
        • JavaScript | TypeScript
        • React
        • Vue.js
        • Next.js
        • Spring & Spring Boot
        • JSP & Servlet
        • DB
      • 웹 프로젝트
        • 웹 프로젝트
        • 🥨스낵몰
        • 👨‍👨‍👧‍👧소셜 가계부
        • 🌜꿈 일기장
        • 🔮포트폴리오 사이트
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼
        • 😺Just Meow It: 고양이의 조언
      • 앱 프로그래밍
        • Flutter
        • Kotlin
      • Problem Solving
        • 백준
        • 프로그래머스
        • SWEA
      • Computer Science
        • 알고리즘
        • 컴퓨터 네트워크
        • 이산수학
      • Developer
        • 후기
        • 자료정리
        • 취업 | 취준
        • 웹개발 교육 프로그램
        • TIL
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    Jiraynor Programming
    구현
    알고리즘
    백준
    강의내용정리
    spring boot
    컴퓨터네트워크
    AWS
    타입스크립트
    프로젝트
    Next.js
    웹사이트
    Til
    파이썬
    뉴렉처
    프로그래머스
    공식문서
    자바
    d3
    블로그 제작
    bfs
    포트폴리오
    SWEA
    클론 프로젝트
    mysql
    ZeroCho
    자바스크립트
    리액트
    플러터
    React
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
[SWEA|파이썬] 2817. 부분 수열의 합 (D3)
상단으로

티스토리툴바