Bakejoon/Gold

[Python] 백준 13164번 : 행복유치원 <Gold 5>

chattymin 2022. 4. 8. 16:14
728x90
반응형

⚠️ 내맘대로 작성한 코드이기 때문에 비합리적 진행과 근거없는 추론이 있을 수 있습니다!⚠️

 

https://www.acmicpc.net/problem/13164

 

13164번: 행복 유치원

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

www.acmicpc.net

Code


n, k = map(int, input().split()) 
number = list(map(int, input().split()))
result = []
sum = 0

for i in range(n-1):
    result.append(number[i+1] - number[i])

result.sort()

for i in range(n-k):
    sum += result[i]

print(sum)

Code 필수 요소

1. 값을 분리하여 배열에 넣는 방법

2. 계산 알고리즘

 

이것만 생각해내면 절반은 끝났다.

 

//값을 분리하여 배열에 넣는 방법

map을 이용해서 하나나 접근하지 않아도 되게 해주고, split을 이용해 하나씩 나누어준다.

 

// 계산 알고리즘연속된 두 수의 차이를 새로운 배열에 기록해 준다. 인원들을 그룹을 짓는다면 배열의 숫자 하나를 무시 할 수 있게 되는 것이다. 그렇기때문에 배열에 입력한 두 수의 차이를 sort해주고, n-k의 갯수만큼 더해준다면 결과가 나온다. 

 

생각보다 쉬웠다. 알고리즘을 생각해내는 것이 헷갈렸지만 그래도 할만했다. 근데 그리디 알고리즘을 쓰라고 했는데 이런식으로 풀어버렸네;; 조만간 다시 한번 그리디 알고리즘으로 풀어봐야 할거같다.

 

 

 

-꿑-

 

 

728x90
반응형