Hiya_
๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ
Hiya_
Github
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (155) N
    • ๐Ÿ’ปBackend (1) N
      • ๋ผ์ด์ง•์บ ํ”„ (6)
      • SSAFY | ์‹ธํ”ผ (2)
      • ์‹ ํ•œDS ๊ธˆ์œตSW ์•„์นด๋ฐ๋ฏธ (2)
    • ๐Ÿ“๋ฌธ์ œ ํ’€์ด (102)
      • ๐ŸงฉBaekjoon (47)
      • ๐ŸงฉProgrammers (42)
      • ๐ŸงฉSWExpertAcademy (10)
      • ๐ŸงฉSofteer (3)
    • ๐Ÿ“‚Language (31)
      • Python (3)
      • JAVA (2)
      • SQL (6)
      • English (19)
    • โœจUseful information (5)
    • ๐Ÿ”‘Algorithms (3)
    • ๐Ÿ™Git (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ๊ทธ๋ฆฌ๋””
  • ๋ฆฌ์ŠคํŠธ
  • greedy algorithm
  • ํ† ์ต์‹œํ—˜
  • mysql
  • ํ•ด์ปค์Šคํ† ์ต
  • UNION ALL
  • ํ•ด์ปค์ŠคํŒŒ๋žญ์ด
  • ์ฝ”ํ…Œ
  • ์˜ค๋ธ”์™„
  • ๋‹ค์ต์ŠคํŠธ๋ผ
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • sort
  • BFS
  • BaekJoon
  • ํ† ์ต๋…ํ•™
  • ํ† ์ต๊ธฐ์ถœ
  • ๊ตฌํ˜„
  • Union
  • ๋ฐฑ์ค€
  • 2์ฐจ์› ๋ฐฐ์—ด
  • ๋‚ด์žฅํ•จ์ˆ˜
  • Python
  • ์™„์ „ํƒ์ƒ‰
  • ํ† ์ต๊ณต๋ถ€
  • ํ† ์ต๋ฌด๋ฃŒ๊ฐ•์˜
  • ํ† ์ต์ ์ˆ˜
  • ํ† ์ตRC
  • ์ •๋ ฌ
  • ํ† ์ต๋ฌด๋ฃŒ์ž๋ฃŒ

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ


Owner : ๊น€์‹ ์˜
Naver Blog

hELLO ยท Designed By ์ •์ƒ์šฐ.
Hiya_

๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํƒ€๊ฒŸ ๋„˜๋ฒ„ | ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)
๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉProgrammers

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํƒ€๊ฒŸ ๋„˜๋ฒ„ | ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)

2023. 3. 2. 18:31

https://school.programmers.co.kr/learn/courses/30/lessons/43165

[ํƒ€๊ฒŸ ๋„˜๋ฒ„]

level 2

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

 


 

from collections import deque
def solution(numbers, target):
    que = deque()
    que.append((1, numbers[0]))
    que.append((1, -numbers[0]))
    result = 0

    while que:
        q = que.popleft()
        if q[0] == len(numbers):
            if q[1] == target:
                result += 1
        else:
            que.append((q[0]+1, q[1] + numbers[q[0]]))
            que.append((q[0]+1, q[1] - numbers[q[0]]))

    return result


print(solution([4,1,2,1], 4))

 

๊ฐ’์„ ๋”ํ•˜๊ณ  ๋นผ๋Š” ๊ฒฝ์šฐ๋งŒ ์ƒ๊ฐํ•˜๋ฉด ๋˜๋ฏ€๋กœ ์ด์ง„ํŠธ๋ฆฌ ํ˜•์‹์œผ๋กœ ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ง„ํŠธ๋ฆฌ์˜ ๊ฐ ๋ ˆ๋ฒจ์ด numbers์˜ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๊ฐ€ ๋˜๊ณ , ํ•ด๋‹น numbers[level] ๊ฐ’์„ ๋”ํ• ์ง€ ๋บ„์ง€์˜ ๊ฒฝ์šฐ๊ฐ€ ๋‚˜๋ˆ ์ง„๋‹ค.

 

BFS์˜ ํ•ต์‹ฌ์ธ queue์— ๊ฐ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ tupleํ˜•ํƒœ๋กœ (level, ํ˜„์žฌ๊นŒ์ง€ ๊ฐ’)์„ ์—ฐ์†ํ•˜์—ฌ ์‚ฝ์ž…ํ•œ๋‹ค.

queue์—์„œ ๊บผ๋‚ธ q ๋Š” ๋‹น์—ฐํžˆ ๋ณธ์ธ์˜ level๊ณผ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

์•ž์„œ ๋งํ–ˆ๋“ฏ level๊ณผ numbers์˜ ์ธ๋ฑ์Šค๋Š” ๊ฐ™๋‹ค.

์ด๋Š” numbers[level]์˜ ๊ฐ’์„ ๋”ํ•  ๊ฒƒ์ธ์ง€ ๋บ„๊ฒƒ์ธ์ง€๋กœ ์—ฐ์‚ฐ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

 

๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  numbers์˜ ๊ฐ’์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ target์˜ ๊ฐ’๊ณผ ๊ฐ™์€์ง€๊ฐ€ ๊ถ๊ธˆํ•˜๋ฏ€๋กœ

tree์˜ leaf node์ผ ๋•Œ, ๋‹ค์‹œ ๋งํ•ด์„œ level์ด numbers์˜ ๊ธธ์ด์™€ ๊ฐ™์•„์งˆ ๋•Œ ๊ฐ’์ด target๊ณผ ๊ฐ™์€์ง€๋งŒ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

 

'๐Ÿ“๋ฌธ์ œ ํ’€์ด > ๐ŸงฉProgrammers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํƒ€๊ฒŸ ๋„˜๋ฒ„ | DFS/BFS  (0) 2023.04.19
[Programmers] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ด์ƒํ•œ ๋ฌธ์ž ๋งŒ๋“ค๊ธฐ | Level 1  (0) 2023.03.29
[Python week5]ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ปค๋ฎค๋Ÿฌ๋‹(Python๋ฐ˜) 9๊ธฐ ํ›„๊ธฐ  (0) 2023.02.07
[Python | week3] Heap(ํž™) | Dynamic Programming(๋™์  ๊ณ„ํš๋ฒ•) | DFS/ BFS (๊นŠ์ด/ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰)  (0) 2023.01.31
[Python | week2] ์ค‘๊ฐ„๊ณ ์‚ฌ | ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜(Greedy Algorithm)  (0) 2023.01.31
    '๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉProgrammers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํƒ€๊ฒŸ ๋„˜๋ฒ„ | DFS/BFS
    • [Programmers] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ด์ƒํ•œ ๋ฌธ์ž ๋งŒ๋“ค๊ธฐ | Level 1
    • [Python week5]ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ปค๋ฎค๋Ÿฌ๋‹(Python๋ฐ˜) 9๊ธฐ ํ›„๊ธฐ
    • [Python | week3] Heap(ํž™) | Dynamic Programming(๋™์  ๊ณ„ํš๋ฒ•) | DFS/ BFS (๊นŠ์ด/ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰)
    Hiya_
    Hiya_
    ํ•˜์–€ ์ฒœ๊ณผ ๋ฐ”๋žŒ๋งŒ ์žˆ๋‹ค๋ฉด ์–ด๋””๋“  ๊ฐˆ ์ˆ˜ ์žˆ์–ด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”