Coding Test/백준(Python)

[백준/Python] 13164번(그리디,정렬)_행복 유치원

syunze 2023. 9. 5. 14:52

📌문제 유형

그리디 (골드 Lv.5)

 

📌문제

 

13164번: 행복 유치원

입력의 첫 줄에는 유치원에 있는 원생의 수를 나타내는 자연수 N(1 ≤ N ≤ 300,000)과 나누려고 하는 조의 개수를 나타내는 자연수 K(1 ≤ K ≤ N)가 공백으로 구분되어 주어진다. 다음 줄에는 원생들

www.acmicpc.net

 

📌나의 문제풀이

- 아이들의 키는 이미 정렬되어 있음.

- 아이들 키 차이 중, 큰 것들만 제외

  • (몇 개나 제외해야하는지?) k-1개만 제외 → 수를 제외하는 것은, 그 지점에서 끊긴다는 것. 따라서 가장 큰 값을 기준으로 k-1번 끊으면 k개의 그룹이 나옴
  • (예. 3개(k)의 그룹을 만들기 위해선 2번(k-1) 끊어야 함 / 5개(k)의 그룹을 만들기 위해선 4번(k-1)끊어야 함)
n,k = map(int,input().split())

height = list(map(int,input().split()))
diff = []

for i in range(0, len(height)-1):
    diff.append(height[i+1] - height[i])

diff.sort(reverse = True)
    
print(sum(diff[k-1:]))

 

📌 다른사람의 문제풀이

- 동일

 

📌 리뷰

- sort reverse 여부 확인하기

728x90