[Algorithm] 백준 - 1182번 부분수열의 합 (Swift)

2024. 5. 29. 13:28· → Problems
목차
  1. 문제 소개
  2. 문제 풀이

문제 소개

주어진 배열의 부분수열중 원하는 값을 만족하는 부분수열의 갯수를 구하는 문제이다.

문제 풀이

부분수열의 합을 저장하고 합이 s와 같다면 count를 올려준다.
 
고려 사항
1. 처음에 0으로 시작하기 때문에 start라는 변수를 넣어서 dfs함수가 최소 한번은 실행되어야 current == s 조건을 확인하도록 설정했다.
2. current == s 일 경우 바로 return 했는데, 만약 부분수열중에 -1, +1 처럼 0이 되는 요소들이 뒤에 있다면 그것도 고려해야하기 때문에 return을 없애주었다.

import Foundation

let ns = readLine()!.split(separator: " ").map { Int($0)! }
let (n, s) = (ns[0], ns[1])
let input = readLine()!.split(separator: " ").map { Int($0)! }

var count = 0
var visited = Array(repeating: false, count: n)

func dfs(_ current: Int, _ idx: Int, _ start: Bool) {
    if current == s && start {
        count += 1
    }
    
    for i in idx..<n {
        if !visited[i] {
            visited[i] = true
            dfs(current+input[i], i, true)
            visited[i] = false
        }
    }
}

dfs(0, 0, false)

print(count)

'→ Problems' 카테고리의 다른 글

[Algorithm] 백준 - 16198번 에너지 모으기 (Swift)  (0) 2024.05.31
[Algorithm] 백준 - 16197번 두 동전 (Swift)  (0) 2024.05.30
[Algorithm] 백준 - 14888번 연산자 끼워넣기 (Swift)  (1) 2024.05.29
[Algorithm] 백준 - 1339번 단어 수학 (Swift)  (0) 2024.05.28
[Algorithm] 백준 - 2529번 부등호 (Swift)  (0) 2024.05.28
  1. 문제 소개
  2. 문제 풀이
'→ Problems' 카테고리의 다른 글
  • [Algorithm] 백준 - 16198번 에너지 모으기 (Swift)
  • [Algorithm] 백준 - 16197번 두 동전 (Swift)
  • [Algorithm] 백준 - 14888번 연산자 끼워넣기 (Swift)
  • [Algorithm] 백준 - 1339번 단어 수학 (Swift)
Swift librarian
Swift librarian
Swift librarian
Swift Library
Swift librarian
전체
오늘
어제
  • 분류 전체보기 (231)
    • 📺 Programming (5)
    • → Architecture (2)
    • → Design Pattern (0)
    • → Computer Science (15)
    • ⚙️ Algorithm (0)
    • → 알고리즘 관련 (22)
    • → Problems (104)
    • 🚀 Project (0)
    • → 알쏭달쏭 (0)
    • → Shook (2)
    • → Solver (8)
    • → Taster (7)
    • → Outline (4)
    • → Pointer (2)
    • → Guesser (3)
    • 🦜 Swift (2)
    • → Swift Archive (12)
    • → Swift Study (12)
    • → Xcode (6)
    • 🧰 Framework (0)
    • → Foundation (1)
    • → UIKit (2)
    • → SwiftUI (3)
    • → CoreData (2)
    • → MapKit (1)
    • → CoreHaptic (1)
    • → User Notification (1)
    • → StoreKit (2)
    • 🏛️ Library (0)
    • → TCA (0)
    • 🐈‍⬛ Git (8)
    • → Git의 원리 (2)
    • → Git 심화 (1)
    • 📦 Other (1)
    • 👦🏻 Log (0)

최근 글

hELLO · Designed By 정상우.v4.2.2
Swift librarian
[Algorithm] 백준 - 1182번 부분수열의 합 (Swift)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.