ν°μ€ν 리 λ·°
π₯ λ¬Έμ
nκ°μ μμ΄ μλ μ μκ° μμ΅λλ€. μ΄ μλ₯Ό μ μ ν λνκ±°λ λΉΌμ νκ² λλ²λ₯Ό λ§λ€λ €κ³ ν©λλ€. μλ₯Ό λ€μ΄ [1, 1, 1, 1, 1]λ‘ μ«μ 3μ λ§λ€λ €λ©΄ λ€μ λ€μ― λ°©λ²μ μΈ μ μμ΅λλ€.
-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-1 = 3
μ¬μ©ν μ μλ μ«μκ° λ΄κΈ΄ λ°°μ΄ numbers, νκ² λλ² targetμ΄ λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ μ«μλ₯Ό μ μ ν λνκ³ λΉΌμ νκ² λλ²λ₯Ό λ§λλ λ°©λ²μ μλ₯Ό return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
π€ νμ΄ λ°©λ²
μκ°ν΄λ³΄μ.
[1]λ‘ 1μ λ§λλ λ°©λ²μ 1 νκ°μ§μ΄λ€.
[1, 1]λ‘ 2λ₯Ό λ§λλ λ°©λ²μ 1 + 1 ν κ°μ§μ΄λ€.
[1, 1, 1, 1, 1]λ‘ 3μ λ§λλ λ°©λ²μ λ¬Έμ μ€λͺ
κ³Ό κ°μ΄ λ€μ― κ°μ§μ΄λ€.
[1, 1]λ‘ 3μ λ§λ€ μ μκΈ° λλ¬Έμ 0κ°μ λ°©λ²μ΄ μλ€.
κΉμ΄ μ°μ νμμ μ§ννλ€.
κΉμ΄ μ°μ νμμ΄λ λ£¨νΈ λ
ΈλμμλΆν° μμν΄μ λ€μ λΈλμΉλ‘ λμ΄κ°κΈ° μ μ ν΄λΉ λΈλμΉλ₯Ό μλ²½νκ² νμνλ λ°©λ²μ΄λ€.
nκ°μ μ μλ₯Ό λͺ¨λ μ¬μ©νμ¬ νκ² λλ²λ₯Ό λ§λ€μμ λ answerλ₯Ό +1 ν΄μ£Όκ³ 리ν΄νμλ€.
nκ°μ μ μλ₯Ό λͺ¨λ μ¬μ©νμμ§λ§ νκ² λλ²κ° λ§λ€μ΄μ§μ§ μμ κ²½μ° μ¦μ 리ν΄νμ¬ λμ΄μ νμμ μ§ννμ§ μλλ‘ λ°©μ§νλ€.
[1, 1]λ‘ 2λ₯Ό λ§λλ κ²½μ°λ₯Ό 보면
-1-1λ nκ°μ μ μλ₯Ό λͺ¨λ μ¬μ©νμμ§λ§ νκ² λλ²κ° λ§λ€μ΄μ§μ§ μμλ€. νμμ μ’
λ£νλ€.
-1+1λ nκ°μ μ μλ₯Ό λͺ¨λ μ¬μ©νμμ§λ§ νκ² λλ²κ° λ§λ€μ΄μ§μ§ μμλ€. νμμ μ’
λ£νλ€.
+1-1λ nκ°μ μ μλ₯Ό λͺ¨λ μ¬μ©νμμ§λ§ νκ² λλ²κ° λ§λ€μ΄μ§μ§ μμλ€. νμμ μ’
λ£νλ€.
+1+1λ nκ°μ μ μλ₯Ό λͺ¨λ μ¬μ©νμ¬ νκ² λλ²λ₯Ό λ§λ€μλ€. answerλ₯Ό +1 ν΄μ€λ€.
λͺ¨λ νμμ΄ μ’ λ£λμκ³ λ΅μ 1μ΄ λλ€.
π©π»βπ» Swift Code
import Foundation
func solution(_ numbers:[Int], _ target:Int) -> Int {
var answer = 0
dfs(numbers, target, 0, 0, &answer, "0")
return answer
}
func dfs(_ numbers: [Int], _ target: Int, _ currentNum: Int, _ index: Int, _ answer: inout Int, _ str: String) {
if target == currentNum && index == numbers.count {
answer += 1
return
}
if index >= numbers.count {
return
}
dfs(numbers, target, currentNum - numbers[index], index + 1, &answer, str + "-\(numbers[index])")
dfs(numbers, target, currentNum + numbers[index], index + 1, &answer, str + "+\(numbers[index])")
}
μ½λ©ν μ€νΈ μ°μ΅ - νκ² λλ²
nκ°μ μμ΄ μλ μ μκ° μμ΅λλ€. μ΄ μλ₯Ό μ μ ν λνκ±°λ λΉΌμ νκ² λλ²λ₯Ό λ§λ€λ €κ³ ν©λλ€. μλ₯Ό λ€μ΄ [1, 1, 1, 1, 1]λ‘ μ«μ 3μ λ§λ€λ €λ©΄ λ€μ λ€μ― λ°©λ²μ μΈ μ μμ΅λλ€. -1+1+1+1+1 = 3 +1-1+1+1+
programmers.co.kr
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Algorithm] μμ₯ (ν΄μ) (0) | 2021.06.21 |
---|---|
[Algorithm] λ€νΈμν¬ (κΉμ΄ μ°μ νμ(DFS)) (0) | 2021.06.21 |
[Algorithm] λͺ¨μκ³ μ¬ (μμ νμ) (0) | 2021.06.20 |
[Algorithm] H-Index (μ λ ¬) (0) | 2021.06.20 |
[Algorithm] κ°μ₯ ν° μ (μ λ ¬) (0) | 2021.06.20 |
- Total
- Today
- Yesterday
- λ¬λ ₯
- μ΅λ곡μ½μ
- Algorithm
- DFS
- λ€λ¦¬λ₯Ό μ§λλ νΈλ
- mysql
- abs()
- Kakao
- μλ‘ν μ€ν λ€μ€μ 체
- java
- Git
- calendar
- Baekjoon
- compactMap
- BOJ
- IOS
- νλ‘κ·Έλλ¨Έμ€
- iTunes Search API
- map
- Firebase
- programmers
- κΉμ΄ μ°μ νμ
- ternary
- μ΅μ곡배μ
- λ³μ‘
- SWIFT
- μ ν΄λ¦¬λ νΈμ λ²
- sql
- UISearchController
- TIL
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |