๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป Programming/์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ…Œ์ŠคํŠธ

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_ํƒ€๊ฒŸ๋„˜๋ฒ„ (DFS&BFS)

by ๋ญ…์ฆค 2022. 2. 6.
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

ํ’€์ด

BFS ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ ์ˆ˜๋ฅผ ๋”ํ•˜๊ณ  ๋นผ๋Š” ๊ฒฝ์šฐ ๋‘๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ํ์— ๋„ฃ์œผ๋ฉด์„œ BFS๋ฅผ ์ง„ํ–‰์‹œํ‚ค๊ณ  target ๊ณผ ๋™์ผํ•œ ๊ฒฝ์šฐ์— ์นด์šดํŠธํ•ด์ค€๋‹ค.

 

์ฝ”๋“œ

from collections import deque

def solution(numbers, target):
    answer = 0
    queue = deque()
    n = len(numbers)
    queue.append([numbers[0],0])
    queue.append([-1*numbers[0],0])
    while queue:
        temp, idx = queue.popleft()
        idx += 1
        if idx < n:
            queue.append([temp+numbers[idx], idx])
            queue.append([temp-numbers[idx], idx])
        else:
            if temp == target:
                answer += 1
    return answer
๋ฐ˜์‘ํ˜•