그리디 알고리즘은 현재 상황에서 당장 좋은 것을 고르는 방법으로, 현재의 선택이 나중에 미칠 영향은 고려하지 않는다. 이는 기준에 따라 좋은 것을 선택하는 알고리즘이기 때문에 '가장 큰 순서대로', '가장 작은 순서대로'와 같은 기준이 제시된다.
n = int(input())
if n % 5 == 0:
print(n//5)
else:
a = 0
while n > 0:
if n <= 12 and n%3 == 0:
print(a + n//3)
break
n -= 5
a += 1
else:
print(-1)
n = int(input())
minutes = list(map(int, input().split()))
minutes.sort()
result = 0
for i in range(1,n+1):
result += sum(minutes[0:i])
print(result)
def solution(number,k):
answer = number[0]
for i in number[1:]:
while k > 0 and len(answer) > 0 and i > answer[-1]:
k -= 1
answer = answer[:-1]
answer += i
if k != 0:
answer = number[:-k]
return answer
def solution(people, limit):
people.sort()
light = []
heavy = []
half = limit//2
answer = 0
for x in people:
if x <= half:
light.append(x)
else:
heavy.append(x)
while len(light) > 0 and len(heavy) > 0:
if light[0] + heavy[-1] <= limit:
answer += 1
light.pop(0)
heavy.pop()
else:
answer += 1
heavy.pop()
if len(light) > 0:
if len(light) % 2 == 0:
answer += len(light) // 2
else:
answer += len(light) // 2 + 1
else:
answer += len(heavy)
return answer