본문 바로가기

알고리즘

[그리디] 백준 2839번 설탕 배달 Python 풀이

728x90
반응형

문제 요약

상근이가 배달해야 할 N킬로그램의 설탕이 있다.

3킬로그램 봉지와 5킬로그램 봉지로 배달하는데, 최대한 적은 개수의 봉지를 가져가고 싶다.

(예: 18킬로그램 설탕을 배달해야 할 때, 5킬로그램 3개와 3킬로그램 1개를 가져가면 3킬로그램 6개보다 적은 개수를 배달하게 됨)

그 수를 구하는 프로그램을 작성하라.

 

백준 2839번 문제 바로가기

입력

첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000)

출력

상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다.

입출력 예시

입력 출력
18 4
4 -1
6 2
9 3
11 3

피드백

해결 방법을 찾는 능력이 부족하다.

그리디 알고리즘 중 가장 첫 번째 문제였음에도 불구하고 모든 케이스에 대처하는 방법을 찾지 못했다.

if문을 4, 5개나 만들어 각 조건을 넣었지만 애초에 그렇게 푸는 문제가 아니었기 때문..

다른 블로그들을 참고하여 짧고 간단한 코드로 해결하는 방법과 while문에도 else를 사용할 수 있다는 것을 배웠다.

스스로 풀지 못하고 다른 사람 코드를 보고 공부했기 때문에 참고 블로그와 간단한 특징만 아래에 작성했다.

 

참고 블로그 1 영지공지

큰 틀은 whlie문과 else문을 사용함

5로 나누어 떨어질 때까지 3을 빼는 방법 사용

 

백준 알고리즘 2839 [파이썬] : 설탕 배달

[Python] 백준 알고리즘 온라인 저지 2839번 : 설탕 배달 Python3 코드 sugar = int(input()) bag = 0 while sugar >= 0 : if sugar % 5 == 0 : # 5의 배수이면 bag += (sugar // 5) # 5로 나눈 몫을 구해야..

ooyoung.tistory.com

참고 블로그 2 오늘만 사는 개발자

큰 틀은 while문을 사용

while문 내에서 if-elif문을 사용하여 입력값이 0 이하가 될 때, count -1을 반환. while문 밖에서 print(count)

 

[백준] 설탕배달 2839번(파이썬)

문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬

doinge-coding.tistory.com

 

728x90
반응형