[Boj문제풀이]

[Boj/백준] 15553 Python

ki7348 2021. 10. 6. 09:53

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

 

15553번: 난로

첫째 줄에 구사과의 집을 방문하는 친구의 수 N (1 ≤ N ≤ 100,000), 구사과가 가지고 있는 성냥의 개수 K (1 ≤ K ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에는 구사과의 집을 방문하는 친구의 도착 시

www.acmicpc.net

 

 

1. 문제 접근 방식

13614번이랑 문제가 비슷했던것 같다.

각 인접한 원소들의 차이값을 새로운 배열에 담고

작은 순서대로 sorting한다.

가장 큰 원소를 k-1번 pop하고

1을 k번 append 해준다음 리스트의 합을 출력한다.

 

 

2. 내가 푼 코드

import sys

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

arr = []

for _ in range(n):
    arr.append(int(sys.stdin.readline()))


diff = []
for i in range(len(arr)-1):
    diff.append(arr[i+1]-arr[i])

diff.sort()

for _ in range(k-1):
    diff.pop()

for _ in range(k):
    diff.append(1)
print(sum(diff))

 

 

3. 결과 및 느낀점

자주 본 그리디+정렬 유형이다. 2212번 13614번

잘 공부해두자.

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

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