๐๏ธ Algorithm/โฌ ํ๋ก๊ทธ๋๋จธ์ค
โฌ [Programmers] [Python] [Level1] ์ผ์ด์ฌ
Dbswnstjd
2023. 4. 10. 15:20
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/131705
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
ํ์ด
# ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ - ์ผ์ด์ฌ
def solution(number):
tot = 0
def dfs(i, depth, sum_num):
nonlocal tot
if depth == 3 and sum_num == 0:
tot += 1
return
if i == len(number):
return
if depth < 3:
dfs(i+1, depth+1, sum_num + number[i])
dfs(i+1, depth, sum_num)
dfs(0,0,0)
answer = tot
return answer
DFS๋ฅผ ์ฌ์ฉํด์ ํ ์ ์๋ค.
๋ค๋ฅธ ์ฌ๋์ ํ์ด
def solution (number) :
from itertools import combinations
cnt = 0
for i in combinations(number,3) :
if sum(i) == 0 :
cnt += 1
return cnt
print(solution([-2, 3, 0, 2, -5]))
Combination ๋ชจ๋์ ์ฌ์ฉํด์ ๋ชจ๋ ์กฐํฉ์ ๊ตฌํ๊ณ sum ์ด 0 ์ด๋ฉด cnt ๋ฅผ ์ฆ๊ฐ ์์ผ์ฃผ๋ ํ์ด .