[BOJ] 2805번: EKO

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


나무를 길이 순으로 정렬한 뒤, 칼을 대는 높이를 점차 낮춰가는 방식으로 풀이했습니다. tree[i]를 정렬된 이후 i번째 나무의 높이라고 할 때, 칼을 tree[N-1]~tree[N-2] 사이에 대서 원하는 길이를 만들 수 있는지 확인하고, 불가능하면 칼을 tree[N-2]로 옮긴 후 다시 tree[N-2]~tree[N-3] 사이에 대서 원하는 길이를 만들 수 있는지 확인하고.. 이를 반복하면 정렬(O(NlgN))이 이루어진 후 O(N)만에 답을 얻을 수 있습니다.


1000000개를 정렬할 때 혹시 시간초과가 나지 않을까 걱정했는데 시간초과가 나지는 않았습니다.


https://github.com/encrypted-def/BOJ/blob/master/2805.cpp

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ] 3163번: 떨어지는 개미  (0) 2018.01.03
[BOJ] 1922번: 네트워크 연결  (0) 2018.01.03
[BOJ] 1520번: 내리막 길  (0) 2018.01.03
[BOJ] 11055번: 가장 큰 증가 부분 수열  (0) 2018.01.03
[BOJ] 1987번: 알파벳  (0) 2018.01.03
[BOJ] 1927번: 최소 힙  (0) 2018.01.03
  Comments