J1Yun
ZU-TECHLOG
J1Yun
전체 방문자
였늘
μ–΄μ œ
  • πŸ“‘ Category (135)
    • Algorithm (61)
      • πŸ“š Concept (6)
      • πŸ“˜ Baekjoon Judge (53)
      • πŸ“— Programmers (2)
    • Computer Science (42)
      • πŸ”’ Operating System (14)
      • πŸ“‘ Network (15)
      • πŸ’Ύ Database (8)
      • 🧩 Design Pattern (4)
      • πŸ”‘ Security (1)
    • Activities (12)
      • 🦁 λ©‹μŸμ΄μ‚¬μžμ²˜λŸΌ 9κΈ° (6)
      • πŸ’» SWλ§ˆμ—μŠ€νŠΈλ‘œ 13κΈ° (6)
    • Infra (1)
      • ☁️ AWS (1)
    • Languages (1)
      • πŸ’™ Python (1)
    • Backend (7)
      • πŸ”΅ Django (4)
      • 🟒 Node.js (3)
    • Ect. (8)
      • πŸ’¬ Talk (0)
      • πŸ—‚οΈ 개발직ꡰ μ·¨μ—… μ€€λΉ„μžλ£Œ (8)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

250x250
hELLO Β· Designed By μ •μƒμš°.
J1Yun

ZU-TECHLOG

[BOJ] λ°±μ€€ 1238번 νŒŒν‹° - 파이썬(Python)
Algorithm/πŸ“˜ Baekjoon Judge

[BOJ] λ°±μ€€ 1238번 νŒŒν‹° - 파이썬(Python)

728x90

문제

N개의 숫자둜 κ΅¬λΆ„λœ 각각의 λ§ˆμ„μ— ν•œ λͺ…μ˜ 학생이 μ‚΄κ³  μžˆλ‹€.

μ–΄λŠ λ‚  이 Nλͺ…μ˜ 학생이 X (1 ≤ X ≤ N)번 λ§ˆμ„μ— λͺ¨μ—¬μ„œ νŒŒν‹°λ₯Ό 벌이기둜 ν–ˆλ‹€. 이 λ§ˆμ„ μ‚¬μ΄μ—λŠ” 총 M개의 단방ν–₯ λ„λ‘œλ“€μ΄ 있고 i번째 길을 μ§€λ‚˜λŠ”λ° Ti(1 ≤ Ti ≤ 100)의 μ‹œκ°„μ„ μ†ŒλΉ„ν•œλ‹€.

각각의 학생듀은 νŒŒν‹°μ— μ°Έμ„ν•˜κΈ° μœ„ν•΄ κ±Έμ–΄κ°€μ„œ λ‹€μ‹œ κ·Έλ“€μ˜ λ§ˆμ„λ‘œ λŒμ•„μ™€μ•Ό ν•œλ‹€. ν•˜μ§€λ§Œ 이 학생듀은 μ›Œλ‚™ κ²Œμ„λŸ¬μ„œ μ΅œλ‹¨ μ‹œκ°„μ— 였고 κ°€κΈ°λ₯Ό μ›ν•œλ‹€.

이 λ„λ‘œλ“€μ€ 단방ν–₯이기 λ•Œλ¬Έμ— μ•„λ§ˆ 그듀이 였고 κ°€λŠ” 길이 λ‹€λ₯Όμ§€λ„ λͺ¨λ₯Έλ‹€. Nλͺ…μ˜ 학생듀 쀑 였고 κ°€λŠ”λ° κ°€μž₯ λ§Žμ€ μ‹œκ°„μ„ μ†ŒλΉ„ν•˜λŠ” 학생은 λˆ„κ΅¬μΌμ§€ κ΅¬ν•˜μ—¬λΌ.

μž…λ ₯

첫째 쀄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), Xκ°€ 곡백으둜 κ΅¬λΆ„λ˜μ–΄ μž…λ ₯λœλ‹€. 두 번째 쀄뢀터 M+1번째 μ€„κΉŒμ§€ i번째 λ„λ‘œμ˜ μ‹œμž‘μ , 끝점, 그리고 이 λ„λ‘œλ₯Ό μ§€λ‚˜λŠ”λ° ν•„μš”ν•œ μ†Œμš”μ‹œκ°„ Tiκ°€ λ“€μ–΄μ˜¨λ‹€. μ‹œμž‘μ κ³Ό 끝점이 같은 λ„λ‘œλŠ” μ—†μœΌλ©°, μ‹œμž‘μ κ³Ό ν•œ λ„μ‹œ Aμ—μ„œ λ‹€λ₯Έ λ„μ‹œ B둜 κ°€λŠ” λ„λ‘œμ˜ κ°œμˆ˜λŠ” μ΅œλŒ€ 1κ°œμ΄λ‹€.

λͺ¨λ“  학생듀은 μ§‘μ—μ„œ X에 갈수 있고, Xμ—μ„œ μ§‘μœΌλ‘œ λŒμ•„μ˜¬ 수 μžˆλŠ” λ°μ΄ν„°λ§Œ μž…λ ₯으둜 μ£Όμ–΄μ§„λ‹€.

좜λ ₯

첫 번째 쀄에 Nλͺ…μ˜ 학생듀 쀑 였고 κ°€λŠ”λ° κ°€μž₯ 였래 κ±Έλ¦¬λŠ” ν•™μƒμ˜ μ†Œμš”μ‹œκ°„μ„ 좜λ ₯ν•œλ‹€.

 

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

 

1238번: νŒŒν‹°

첫째 쀄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), Xκ°€ 곡백으둜 κ΅¬λΆ„λ˜μ–΄ μž…λ ₯λœλ‹€. 두 번째 쀄뢀터 M+1번째 μ€„κΉŒμ§€ i번째 λ„λ‘œμ˜ μ‹œμž‘μ , 끝점, 그리고 이 λ„λ‘œλ₯Ό μ§€λ‚˜λŠ”λ° ν•„μš”ν•œ μ†Œμš”μ‹œκ°„ Tiκ°€ λ“€μ–΄

www.acmicpc.net

 

πŸ’‘ 풀이 및 μ½”λ“œ

import heapq
import sys
input = sys.stdin.readline
INF = int(1e9)

n, m, x = map(int, input().split())
graph = [[] for _ in range(n+1)]
for _ in range(m):
    a, b, c = map(int, input().split())
    graph[a].append((b, c))

distance_a = []
for i in range(1, n+1):
    hq = []
    heapq.heappush(hq, (0, i))
    d = [INF] * (n+1)
    d[i] = 0
    while hq:
        dist, now = heapq.heappop(hq)
        if d[now] < dist:
            continue
        for i in graph[now]:
            cost = dist + i[1]
            if cost < d[i[0]]:
                d[i[0]] = cost
                heapq.heappush(hq, (cost, i[0]))
    distance_a.append(d[x])
            
hq = []
heapq.heappush(hq, (0, x))
distance_b = [INF] * (n+1)
distance_b[x] = 0
while hq:
    dist, now = heapq.heappop(hq)
    if distance_b[now] < dist:
        continue
    for i in graph[now]:
        cost = dist + i[1]
        if cost < distance_b[i[0]]:
            distance_b[i[0]] = cost
            heapq.heappush(hq, (cost, i[0]))

result = 0
for i in range(1, n+1):
    result = max(result, distance_a[i-1] + distance_b[i])
    
print(result)

μ΅œλ‹¨κ²½λ‘œ(λ‹€μ΅μŠ€νŠΈλΌ) λ¬Έμ œμ΄λ‹€. λ¨Όμ €, 각 λ§ˆμ„μ—μ„œ X λ§ˆμ„ κΉŒμ§€μ˜ μ΅œλ‹¨ 거리λ₯Ό ꡬ해 배열에 μ €μž₯ν•˜κ³ , Xλ§ˆμ„λ‘œ λΆ€ν„° 각 λ§ˆμ„ κΉŒμ§€μ˜ μ΅œλ‹¨ 거리λ₯Ό λ”°λ‘œ κ΅¬ν•œλ‹€. 이후, 각 λ§ˆμ„μ— λŒ€ν•΄ X λ§ˆμ„ κΉŒμ§€μ˜ μ΅œλ‹¨ 거리와 λ‹€μ‹œ λŒμ•„μ˜€λŠ” 길의 μ΅œλ‹¨ 거리λ₯Ό ν•©ν•΄ 이 합이 κ°€μž₯ 큰 λ§ˆμ„μ„ 좜λ ₯ν•΄ μ£Όλ©΄ λœλ‹€.

728x90

'Algorithm > πŸ“˜ Baekjoon Judge' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[BOJ] λ°±μ€€ 14500번 ν…ŒνŠΈλ‘œλ―Έλ…Έ - 파이썬(Python)  (0) 2022.03.31
[BOJ] λ°±μ€€ 3190번 λ±€ - 파이썬(Python)  (3) 2022.02.23
[BOJ] λ°±μ€€ 1261번 μ•Œκ³ μŠ€νŒŸ - 파이썬(Python)  (0) 2022.01.19
[BOJ] λ°±μ€€ 11000번 κ°•μ˜μ‹€ λ°°μ • - 파이썬(Python)  (0) 2022.01.10
[BOJ] λ°±μ€€ 2212번 μ„Όμ„œ - 파이썬(Python)  (0) 2022.01.10
    'Algorithm/πŸ“˜ Baekjoon Judge' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ 글이닀
    • [BOJ] λ°±μ€€ 14500번 ν…ŒνŠΈλ‘œλ―Έλ…Έ - 파이썬(Python)
    • [BOJ] λ°±μ€€ 3190번 λ±€ - 파이썬(Python)
    • [BOJ] λ°±μ€€ 1261번 μ•Œκ³ μŠ€νŒŸ - 파이썬(Python)
    • [BOJ] λ°±μ€€ 11000번 κ°•μ˜μ‹€ λ°°μ • - 파이썬(Python)
    J1Yun
    J1Yun
    개발 κ΄€λ ¨ 기술 및 곡뢀 λ‚΄μš© 기둝μž₯

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”