[Boj문제풀이]

[Boj/백준] 13164 Python

ki7348 2021. 10. 5. 16:07

문제출처: https://www.acmicpc.net/problem/13164

 

13164번: 행복 유치원

행복 유치원 원장인 태양이는 어느 날 N명의 원생들을 키 순서대로 일렬로 줄 세우고, 총 K개의 조로 나누려고 한다. 각 조에는 원생이 적어도 한 명 있어야 하며, 같은 조에 속한 원생들은 서로

www.acmicpc.net

 

 

1. 문제 접근 방식

고민을 길게 했다,,,

그러다가

각 인접하는 원소의 크기차이를 배열로 만들고

ex) 1 3 5 6 10이면 ( 2 2 1 4 )

k가 1이면 2+2+1+4

2이면 2+2+1

3이면 2+1 ...

처럼 k값이 한 개 오를때마다 가장 큰 원소를 힙을 이용해서 heappop했다.

 

 

2. 내가 푼 코드

import sys
import heapq

n,k = map(int,sys.stdin.readline().split())

arr = list(map(int,sys.stdin.readline().split()))
heap = []
heapq.heapify(heap)
for i in range(len(arr)-1): # 0 1 2 3 4
    heapq.heappush(heap,(-arr[i+1]+arr[i]))

for i in range(k-1):
    heapq.heappop(heap)

print(abs(sum(heap)))

 

 

3. 결과 및 느낀점

브루트포스가 아니면 그리디라고 생각한다.

항상 최선의 선택이 존재한다는 말이 와닿았다.

'[Boj문제풀이]' 카테고리의 다른 글

[Boj/백준] 15553 Python  (0) 2021.10.06
[Boj/백준] 2170 Python  (0) 2021.10.05
[Boj/백준] 2075 Python  (0) 2021.10.04
[Boj/백준] 7983 Python  (0) 2021.10.04
[Boj/백준] 11497 Python  (0) 2021.10.04