sohyeon kim

[Python] 백준 : 강의실 31872, sorted, reverse, sum 본문

Coding Test

[Python] 백준 : 강의실 31872, sorted, reverse, sum

aotoyae 2025. 4. 9. 22:08
728x90
반응형

 

 

📝 문제

혁준이는 오늘 학교에서 N 개의 강의를 들어야 한다. 모든 강의는 x 축 위의 서로 다른 좌표에 존재하는 강의실에서 진행된다.

 i 번째 강의실은 x = A(i) 에 있고, 처음에 혁준이는 x = 0 에 있다. 혁준이가 x 축 위에서 왼쪽 또는 오른쪽으로 1 만큼 이동할 때마다 1 초의 시간이 걸린다. 혁준이는 초급 마법사라서 최대 K 번 순간이동을 할 수 있다. 순간이동을 하면 현재 위치에서 원하는 다른 위치로 즉시 이동하고, 시간은 소요되지 않는다.

혁준이가 x = 0 에서 출발하여 모든 강의실을 한 번씩 들르는 데 걸리는 최소 시간을 구해보자. 강의를 듣는 데 걸리는 시간은 없다.

 

🫠 나의 풀이

import sys
input = sys.stdin.readline

N, K = map(int, input().split())
lst = [0] + sorted(map(int, input().split()))
time = []

for i in range(len(lst) - 1, 0, -1):
    time.append(lst[i] - lst[i - 1])

answer = sorted(time, reverse=True)[K:]
print(sum(answer))

 

🧞‍♂️ 다른 사람의 풀이

a, b = map(int, input().split())
t = list(map(int, input().split()))
t.append(0)
t.sort()
q = []
for i in range(1, a + 1):
    q.append(t[i] - t[i - 1])
q.sort(reverse=True)
print(sum(q[b:]))

 

 

 

🔗 https://www.acmicpc.net/problem/31872

 

 

 

728x90
반응형