[๋ฐฑ์ค€] 2252 ์ค„์„ธ์šฐ๊ธฐ (python ํŒŒ์ด์ฌ)

2022. 6. 11. 02:32ยท๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

https://www.acmicpc.net/problem/2252

 

2252๋ฒˆ: ์ค„ ์„ธ์šฐ๊ธฐ

์ฒซ์งธ ์ค„์— N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. M์€ ํ‚ค๋ฅผ ๋น„๊ตํ•œ ํšŒ์ˆ˜์ด๋‹ค. ๋‹ค์Œ M๊ฐœ์˜ ์ค„์—๋Š” ํ‚ค๋ฅผ ๋น„๊ตํ•œ ๋‘ ํ•™์ƒ์˜ ๋ฒˆํ˜ธ A, B๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด๋Š” ํ•™์ƒ A๊ฐ€ ํ•™์ƒ B์˜ ์•ž์— ์„œ์•ผ ํ•œ๋‹ค๋Š” ์˜

www.acmicpc.net

 

ํ’€์ด ๊ณผ์ •

์ž…๋ ฅ๊ฐ’์€ ํ‚ค๋ฅผ ๋น„๊ตํ•œ ํ•™์ƒ A์™€ B์˜ ์ˆœ์„œ๊ฐ€ M๊ฐœ๋งŒํผ ์ฃผ์–ด์ง„๋‹ค. 

๋ฐ”๋กœ ์ด์ „์— ํ’€์—ˆ๋˜ ACMCraft์™€ ๋น„์Šทํ•œ ์œ ํ˜•์ธ ๊ฑฐ ๊ฐ™์•„ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ–ˆ๋‹ค.

์œ„์ƒ ์ •๋ ฌ๋งŒ ์•Œ๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•˜๋‹ค.

from collections import deque
import sys
input = sys.stdin.readline
N, M = map(int,input().rstrip().split())

student_adj_list = [[] for _ in range(N + 1)]
in_degree = [0 for _ in range(N + 1)]
que = deque()

for i in range(M):
    x, y = map(int,input().rstrip().split())
    student_adj_list[x].append(y)
    in_degree[y] += 1

์ •์ ์— ๋“ค์–ด์˜ค๋Š” ๊ฐ„์„ ์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด in_degree๋ฆฌ์ŠคํŠธ์™€ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ student_adj_list๋ฅผ ์„ ์–ธํ•œ๋‹ค.

์ดํ›„ ๋“ค์–ด์˜ค๋Š” M๊ฐœ์˜ ์ž…๋ ฅ๊ฐ’์„ ์ €์žฅํ•˜๋ฉด ์ค€๋น„ ๋

 

for i in range(1,N + 1):
    if in_degree[i] == 0:
        que.append(i)

while que:
    node = que.popleft()
    print(node,end=' ')
    for student in student_adj_list[node]:
        in_degree[student] -= 1
        if in_degree[student] == 0:
            que.append(student)
print()

๊ฐ€์žฅ ์ดˆ๊ธฐ ์ƒํƒœ์— ์ •์ ์— ๋“ค์–ด์˜ค๋Š” ๊ฐ„์„ ์ˆ˜(in_degree) ๊ฐ’์ด 0์ธ ๊ฒƒ๋“ค์„ ํ์— ๋„ฃ์–ด์ค€๋‹ค.

ํ•ด๋‹น ์ •์ ๊ณผ ์—ฐ๊ฒฐ๋œ ์ •์ ๋“ค์˜ in_degree๊ฐ’๋“ค์„ 1์”ฉ ๊ฐ์†Œ์‹œ์ผœ์ค€๋‹ค.

๊ฐ’์ด 0์ด ๋œ ์ •์ ์€ ํ์— ๋„ฃ์–ด์ค€๋‹ค. ํ๊ฐ€ ๋น„์›Œ์งˆ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉด ๋œ๋‹ค.

 

์ „์ฒด ์ฝ”๋“œ

from collections import deque
import sys
input = sys.stdin.readline
N, M = map(int,input().rstrip().split())

student_adj_list = [[] for _ in range(N + 1)]
in_degree = [0 for _ in range(N + 1)]
que = deque()

for i in range(M):
    x, y = map(int,input().rstrip().split())
    student_adj_list[x].append(y)
    in_degree[y] += 1

for i in range(1,N + 1):
    if in_degree[i] == 0:
        que.append(i)

while que:
    node = que.popleft()
    print(node,end=' ')
    for student in student_adj_list[node]:
        in_degree[student] -= 1
        if in_degree[student] == 0:
            que.append(student)
print()

'๐Ÿงฉ Problem Solving > [๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 7569 ํ† ๋งˆํ†  (python ํŒŒ์ด์ฌ)  (0) 2022.06.14
[๋ฐฑ์ค€] 13549 ์ˆจ๋ฐ”๊ผญ์งˆ3 (python ํŒŒ์ด์ฌ)  (0) 2022.06.13
[๋ฐฑ์ค€] 11718 ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๊ธฐ (python ํŒŒ์ด์ฌ)  (0) 2022.06.10
[๋ฐฑ์ค€] 1005 ACMCraft (python ํŒŒ์ด์ฌ)  (0) 2022.06.10
[๋ฐฑ์ค€] 14499 ์ฃผ์‚ฌ์œ„ ๊ตด๋ฆฌ๊ธฐ(python ํŒŒ์ด์ฌ)  (0) 2022.06.09
'๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 7569 ํ† ๋งˆํ†  (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 13549 ์ˆจ๋ฐ”๊ผญ์งˆ3 (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 11718 ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๊ธฐ (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 1005 ACMCraft (python ํŒŒ์ด์ฌ)
์ œ๋ด‰์•„
์ œ๋ด‰์•„
  • ์ œ๋ด‰์•„
    Overthinking
    ์ œ๋ด‰์•„
    fake it till you make it.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (104)
      • ๐Ÿงฉ Problem Solving (83)
        • [๋ฐฑ์ค€] (74)
        • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] (7)
        • [SW Expert Academy] (1)
        • [์•Œ๊ณ ๋ฆฌ์ฆ˜ for PS] (1)
      • ๐Ÿ“ฆ Data Structure (2)
      • ๐Ÿ“œ Language (14)
        • [python] (14)
      • ๐Ÿ–ค Git (1)
      • ๐ŸŒ† ์ผ์ƒ (2)
        • ๐Ÿ’ฌ ๋ฒฝ๋ณด๊ณ  ๋งํ•˜๊ธฐ (2)
      • ๐Ÿ—„๏ธ ๊ธฐํƒ€ (2)
      • ๐Ÿ”ต css (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

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

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ํ”Œ๋กœ์ด๋“œ์›Œ์…œ
    ๋ƒ…์ƒ‰
    boj
    ํŒฐ๋ฆฐ๋“œ๋กฌ
    ๋‹ค์ต์ŠคํŠธ๋ผ
    ๋ˆ„์ ํ•ฉ
    ๋ฐฑ์ค€
    Bruteforce
    ์ •์ฒ˜๊ธฐ
    DFS
    ์žฌ๊ท€
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    BFS
    ๋ถ„ํ•  ์ •๋ณต
    ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ
    ๊ตฌํ˜„
    SWEA
    ๋ฐฑํŠธ๋ž˜ํ‚น
    DP
    ํˆฌํฌ์ธํ„ฐ
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    imos
    slicing
    ๋ถ€๋ถ„ํ•ฉ
    ์Šคํƒ
    ์œ„์ƒ์ •๋ ฌ
    Python
    ๊ทธ๋ฆฌ๋””
    ๋ฐ๋ธŒ์ฝ”์Šค
    ํŒŒ์ด์ฌ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ œ๋ด‰์•„
[๋ฐฑ์ค€] 2252 ์ค„์„ธ์šฐ๊ธฐ (python ํŒŒ์ด์ฌ)
์ƒ๋‹จ์œผ๋กœ

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