π νμ΄μ¬ μΌλ‘ νμ΄
π λ¬Έμ λ§ν¬ :
νλ‘κ·Έλλ¨Έμ€
μ½λ μ€μ¬μ κ°λ°μ μ±μ©. μ€ν κΈ°λ°μ ν¬μ§μ λ§€μΉ. νλ‘κ·Έλλ¨Έμ€μ κ°λ°μ λ§μΆ€ν νλ‘νμ λ±λ‘νκ³ , λμ κΈ°μ κΆν©μ΄ μ λ§λ κΈ°μ λ€μ λ§€μΉ λ°μΌμΈμ.
programmers.co.kr
π λ¬Έμ μ€λͺ :
νκ΅μ€νκ΅μ λ€λλ νμλ€μ κ°μ μ μ λ²νΈλ₯Ό κ°κ³ μμ΅λλ€. μ΄ νκ΅ νμ 3λͺ μ μ μ λ²νΈλ₯Ό λνμ λ 0μ΄ λλ©΄ 3λͺ μ νμμ μΌμ΄μ¬λΌκ³ ν©λλ€. μλ₯Ό λ€μ΄, 5λͺ μ νμμ΄ μκ³ , κ°κ°μ μ μ λ²νΈκ° μμλλ‘ -2, 3, 0, 2, -5μΌ λ, 첫 λ²μ§Έ, μΈ λ²μ§Έ, λ€ λ²μ§Έ νμμ μ μ λ²νΈλ₯Ό λνλ©΄ 0μ΄λ―λ‘ μΈ νμμ μΌμ΄μ¬μ λλ€. λν, λ λ²μ§Έ, λ€ λ²μ§Έ, λ€μ― λ²μ§Έ νμμ μ μ λ²νΈλ₯Ό λν΄λ 0μ΄λ―λ‘ μΈ νμλ μΌμ΄μ¬μ λλ€. λ°λΌμ μ΄ κ²½μ° νκ΅μ€νκ΅μμλ λ κ°μ§ λ°©λ²μΌλ‘ μΌμ΄μ¬λ₯Ό λ§λ€ μ μμ΅λλ€.
νκ΅μ€νκ΅ νμλ€μ λ²νΈλ₯Ό λνλ΄λ μ μ λ°°μ΄ numberκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, νμλ€ μ€ μΌμ΄μ¬λ₯Ό λ§λ€ μ μλ λ°©λ²μ μλ₯Ό return νλλ‘ solution ν¨μλ₯Ό μμ±νμΈμ.
π μ ν μ¬ν
- 3 ≤ numberμ κΈΈμ΄ ≤ 13
- -1,000 ≤ numberμ κ° μμ ≤ 1,000
- μλ‘ λ€λ₯Έ νμμ μ μ λ²νΈκ° κ°μ μ μμ΅λλ€.
π μ μΆλ ₯ μ

μΆμΈ‘)
forλ¬Έμ λλ € λͺ¨λ κ²½μ°μ μλ₯Ό λΉκ΅νλ λ°©λ²μ΄ λμκΉ (3μ€ν¬λ¬Έμ΄ κ±Έμ΄μΌ ν λ―νλ° 3μ€ν¬λ¬Έ νΌν μ μλ λ°©λ² μλ)
μμ€μ½λ)
* 1μ°¨) μ±κ³΅ : μΌλ¨ 3μ€ ν¬λ¬ΈμΌλ‘ νμΈ λ€λ₯Έ λ°©λ²λ μκ°ν΄ 보μ
def solution(number):
cnt = 0
for i in range(len(number)):
for x in range(i+1,len(number)):
for y in range(x+1,len(number)) :
if (number[i] + number[x] + number[y]) == 0 :
cnt += 1
return cnt
* 2μ°¨) μ±κ³΅ : νμ΄μ¬ λͺ¨λ μ¬μ©ν΄λ³΄κΈ°
# μμ λ§μ λ°λ³΅μλ₯Ό λ§λλ λͺ¨λ, λ°λ³΅ μμμ λν μ²λ¦¬λ νΉμ λ°°μ΄μ μμ΄μ΄λ μ‘°ν©μ λ§λ€μ΄μΌν λ μ μ©
import itertools
def solution(number):
cnt = 0
# λ§€κ°μΈμλ‘ λ°°μ΄κ³Ό κ°―μ λ£μΌλ©΄ ν΄λΉ κ°μλ‘λ λͺ¨λ νν μ‘°ν©μ λ§λ λ€
data = list(itertools.combinations(number, 3))
for one in data:
if sum(one) == 0 : # ν, νμ΄μ¬μ listλ κ·Έλ κ³ ννλ κ·Έλ κ³ sum ν¨μμ λ£μ΄μ£Όλ©΄ ν©μ΄ λμ΄ μ κΈ°
cnt += 1
return cnt
* 3μ°¨)
리뷰)
3μ€ν¬λ¬ΈμΌλ‘ νμλ κ±°λ₯Ό λ€λ₯Έ λ°©λ²μΌλ‘ ν μ μλ λ°©λ²μ λν΄ κ³΅λΆνλ€.
μΌλ¨ νμ΄μ¬μ κΈ°λ³Έ λΌμ΄λΈλ¬λ¦¬μΈ itertoolsμ combinationμ μ¬μ©ν΄ 리μ€νΈμ μλ λͺ¨λ μ‘°ν©μ ꡬνλ κ±Έ κ°λ¨ν λͺ¨λλ‘ λ체νλ λ°©λ²
λ€λ₯Έ μ¬λ νμ΄λ₯Ό 보λκΉ DFSλ‘ νΈλ λ°©λ²λ μμλ€ μ΄κ±΄ λμ€μ 곡λΆν΄λ³΄λ κ±Έλ‘
'Coding Test > Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| Programmers] μΉ΄λ λμΉ (0) | 2023.02.28 |
|---|---|
| Programmers] [1μ°¨] λΉλ°μ§λ (0) | 2023.02.28 |
| Programmers] κ°μΈμ 보 μμ§ μ ν¨κΈ°κ° (0) | 2023.02.22 |
| Programmers] μ κ³ κ²°κ³Ό λ°κΈ° (0) | 2023.02.22 |
| Programmers] λλ§μ μνΈ (0) | 2023.02.21 |
