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)

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

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

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

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

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

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ


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

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

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

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ˆœ์œ„ | ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜
๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉProgrammers

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ˆœ์œ„ | ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜

2023. 5. 25. 20:49

 

~๋ชฉ์ฐจ~

๋ฌธ์ œ

๋ฌธ์ œ ํ•ด๊ฒฐ ํฌ์ธํŠธ

์ž‘์„ฑ ์ฝ”๋“œ


 

๋ฌธ์ œ

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

 

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

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

programmers.co.kr

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ํฌ์ธํŠธ

- ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ

- ์ •์  i๊ฐ€ 1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋ชจ๋“  ์ •์ ์œผ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ˆœ์œ„๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

- ์ดˆ๊ธฐ ์ธ์ ‘ ํ–‰๋ ฌ์€ ๋ฌดํ•œ์ˆ˜๋กœ ์ดˆ๊ธฐํ™”, ์—ฐ๊ด€์ด ์žˆ๋Š” ๋‘ ์ •์  results๋Š” 1๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

  ์ด๋Š” 1๋ฒˆ์— ๊ฑธ์ณ a ์ •์ ๊ณผ b ์ •์ ์ด ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค.

- a ์ •์ ์—์„œ b ์ •์ ์œผ๋กœ ๋ฐ”๋กœ ๊ฐ€๋Š” ๋ฐฉ๋ฒ• (a -> b) ๋˜๋Š” k๋ฅผ ๊ฑฐ์น˜๋Š” ๋ฐฉ๋ฒ• (a -> k -> b) ์ค‘ ์ž‘์€ ๊ฒฝ์šฐ๋กœ ์—…๋ฐ์ดํŠธ

 

- ์ •์  i์—์„œ j๋กœ ๊ฐ€๋Š” ๋ฐฉ๋ฒ•( ์ˆœ์œ„๊ฐ€ i๋ณด๋‹ค j๊ฐ€ ํฌ๋‹ค ) ๋˜๋Š” j์—์„œ i๋กœ ๊ฐ€๋Š” ๋ฐฉ๋ฒ• ( ์ˆœ์œ„๊ฐ€ i๋ณด๋‹ค j๊ฐ€ ์ž‘๋‹ค)

  ํ•˜๋‚˜๋ผ๋„ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ๋‘˜์˜ ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ์˜๋ฏธ

 

- ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์—์„œ graph์˜ ์ƒํƒœ๋ฅผ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

์—ฌ๊ธฐ์„œ ์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ i์—์„œ j๋กœ ๊ฐ€๋Š” ๋ฐฉ๋ฒ• ๋˜๋Š” j์—์„œ i๋กœ ๊ฐ€๋Š” ๋‘ ๋ฐฉ๋ฒ• ์–ด๋А ๊ฒƒ๋„ ์—ฐ๊ฒฐ์ด ์—†๋‹ค๋ฉด(๋ฌดํ•œ์ˆ˜๋ผ๋ฉด)

๋‘ ์ •์ ์˜ ๊ด€๊ณ„๋Š” ์—†๋Š” ๊ฒƒ์ด๊ณ , ํ•ด๋‹น i ์ •์ ์€ ์ˆœ์œ„๋ฅผ ์•Œ ์ˆ˜ ์—†๋‹ค.

 

๋ชจ๋“  ์ •์ ๊ณผ์˜ ๊ด€๊ณ„๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ๋Š” 2์™€ 5 ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋กœ, ๊ทธ๋ฆผ์œผ๋กœ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

 

 

 

 

โฌ‡ ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ ๊ด€๋ จ ์ž‘์„ฑ ๊ธ€์„ ์ฐธ๊ณ ํ•˜์„ธ์š”

2023.05.17 - [๐ŸงชComputer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜] - [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ | ๋‹ค์ต์ŠคํŠธ๋ผ | ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ

 

์ž‘์„ฑ ์ฝ”๋“œ

INF = int(1e9)
def solution(n, results):
    graph = [[INF]*(n+1) for _ in range(n+1)]  # ์ธ์ ‘ ํ–‰๋ ฌ
    result = 0

    for a, b in results:  # ์ง์ ‘ ์—ฐ๊ด€์ด ์žˆ๋Š” ๊ด€๊ณ„ ์—…๋ฐ์ดํŠธ
        graph[a][b] = 1

    # ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜
    for k in range(1, n+1):
        for a in range(1, n+1):
            for b in range(1, n+1):
                # ํ–‰ ์—ด์ด ๊ฐ™๋‹ค๋ฉด 0, ๋‹ค๋ฅด๋‹ค๋ฉด a -> b ์™€ a -> k -> b ์ค‘ ์งง์€ ๊ฑฐ๋ฆฌ ์„ ํƒ
                graph[a][b] = min(graph[a][b], graph[a][k] + graph[k][b]) if a != b else 0

    for i in range(1, n+1):
        flag = False  # ์ •์  i์— ๋Œ€ํ•ด i -> j ๋˜๋Š” j -> i๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ํŒ๋ณ„
        for j in range(1, n+1):
            if i != j and graph[i][j] == INF and graph[j][i] == INF:
                flag = True  # ์ •์  i๋กœ๋ถ€ํ„ฐ ๋„๋‹ฌ ํ•  ์ˆ˜ ์—†๋Š” ์ •์ ์ด ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด ์ˆœ์œ„๋ฅผ ์•Œ ์ˆ˜ ์—†์Œ
                break
        if not flag:  # i ์ •์ ์œผ๋กœ๋ถ€ํ„ฐ ๋ชจ๋“  ์ •์ ์œผ๋กœ ๋„๋‹ฌ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด
            result += 1

    return result

 

 

 

๋„์›€์ด ๋˜์…จ๋‹ค๋ฉด ์ข‹์•„์š” ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”๐Ÿ’š

 

 

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

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์‹คํŒจ์œจ | ์ •๋ ฌ | 2019 KAKAO BLIND RECRUITMENT  (0) 2023.06.03
[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์„  ์—ฐ๊ฒฐํ•˜๊ธฐ | ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜  (0) 2023.05.29
[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ž์—ด ์••์ถ• | 2020 KAKAO BLIND RECRUITMENT  (0) 2023.05.20
[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌด์ง€์˜ ๋จน๋ฐฉ ๋ผ์ด๋ธŒ | Heap(ํž™) | 2019 KAKAO BLIND RECRUITMENT  (0) 2023.05.20
[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ฐ€์žฅ ๋จผ ๋…ธ๋“œ | BFS | ๋‹ค์ต์ŠคํŠธ๋ผ  (0) 2023.05.16
    '๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉProgrammers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์‹คํŒจ์œจ | ์ •๋ ฌ | 2019 KAKAO BLIND RECRUITMENT
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์„  ์—ฐ๊ฒฐํ•˜๊ธฐ | ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ž์—ด ์••์ถ• | 2020 KAKAO BLIND RECRUITMENT
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌด์ง€์˜ ๋จน๋ฐฉ ๋ผ์ด๋ธŒ | Heap(ํž™) | 2019 KAKAO BLIND RECRUITMENT
    Hiya_
    Hiya_
    ํ•˜์–€ ์ฒœ๊ณผ ๋ฐ”๋žŒ๋งŒ ์žˆ๋‹ค๋ฉด ์–ด๋””๋“  ๊ฐˆ ์ˆ˜ ์žˆ์–ด

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