๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐‘†๐‘ข๐‘›๐‘ โ„Ž๐‘–๐‘›๐‘’ ๐‘Ž๐‘“๐‘ก๐‘’๐‘Ÿ ๐‘Ÿ๐‘Ž๐‘–๐‘›โœง

[Python] ๋ฐฑ์ค€ 2110 & ๋ฐฑ์ค€ 1238 ๋ณธ๋ฌธ

import sys

n, c = map(int, sys.stdin.readline().split())
house = [int(sys.stdin.readline()) for _ in range(n)]

house.sort()

# ๊ณต์œ ๊ธฐ ์‚ฌ์ด ๊ฑฐ๋ฆฌ ์ตœ์†Ÿ๊ฐ’
start = 1
# ๊ณต์œ ๊ธฐ ์‚ฌ์ด ๊ฑฐ๋ฆฌ ์ตœ๋Œ“๊ฐ’
end = house[n - 1] - house[0]
result = []

while start <= end:
    count = 1
    mid = (start + end) // 2 # mid ๊ฐ’์„ ๊ณต์œ ๊ธฐ ์‚ฌ์ด ๊ฑฐ๋ฆฌ์˜ ์ตœ์†Ÿ๊ฐ’
    current = house[0]  # ๊ณต์œ ๊ธฐ๊ฐ€ ์„ค์น˜๋œ ์ง‘์˜ ์œ„์น˜
    for i in house:
        if current + mid <= i:  # ๊ณต์œ ๊ธฐ ์„ค์น˜
            count += 1
            current = i
    if count >= c:  # mid ๊ฐ’์— ๋”ฐ๋ผ ์„ค์น˜๋œ ๊ณต์œ ๊ธฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ c ๋ณด๋‹ค ๋งŽ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด
        start = mid + 1  # ๊ฑฐ๋ฆฌ๋ฅผ ๋Š˜๋ฆฐ๋‹ค.
        result.append(mid)
    else:
        end = mid - 1  # c ๋ณด๋‹ค ์ž‘์œผ๋ฉด ๊ฑฐ๋ฆฌ๋ฅผ  ์ค„์ธ๋‹ค.

print(max(result))

 

#๋ฐฑ์ค€ 1238 ํŒŒํ‹ฐ

import sys
import heapq

n, m, k = map(int, input().split(' '))
graph = [[] for _ in range(n+1)]


for _ in range(m):
    a, b, c = map(int, sys.stdin.readline().split())
    graph[a].append([b,c])

def dijkstra(start_node, end_node):
    queue = []
    heapq.heappush(queue, [0, start_node])
    min_distance = [1e9] * (n + 1) # ๊ฑฐ๋ฆฌ ์ดˆ๊ธฐํ™” ์ค‘์š”!!
    min_distance[start_node] = 0
    while queue:
        [current_dist, current_node] = heapq.heappop(queue)
        if min_distance[current_node] < current_dist:
            continue
        min_distance[current_node] = current_dist
        for next_node, weight in graph[current_node]:
            cost = min_distance[current_node] + weight
            if cost < min_distance[next_node]:
                min_distance[next_node] = cost
                heapq.heappush(queue, [cost, next_node])
    return min_distance[end_node] # ๋ฐ˜ํ™˜๊ฐ’์„ ๋„์ฐฉ์ง€๊นŒ์ง€ ๊ฐ€๋Š” *๊ฑฐ๋ฆฌ๊ฐ’*์œผ๋กœ ์„ค์ •

result = 0
for i in range(1, n+1):
    if i != k:
        result = max(result, dijkstra(i, k)+ dijkstra(k, i))

print(result)