728x90
반응형
문제 요약
상근이가 배달해야 할 N킬로그램의 설탕이 있다.
3킬로그램 봉지와 5킬로그램 봉지로 배달하는데, 최대한 적은 개수의 봉지를 가져가고 싶다.
(예: 18킬로그램 설탕을 배달해야 할 때, 5킬로그램 3개와 3킬로그램 1개를 가져가면 3킬로그램 6개보다 적은 개수를 배달하게 됨)
그 수를 구하는 프로그램을 작성하라.
입력
첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000)
출력
상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다.
입출력 예시
입력 | 출력 |
18 | 4 |
4 | -1 |
6 | 2 |
9 | 3 |
11 | 3 |
피드백
해결 방법을 찾는 능력이 부족하다.
그리디 알고리즘 중 가장 첫 번째 문제였음에도 불구하고 모든 케이스에 대처하는 방법을 찾지 못했다.
if문을 4, 5개나 만들어 각 조건을 넣었지만 애초에 그렇게 푸는 문제가 아니었기 때문..
다른 블로그들을 참고하여 짧고 간단한 코드로 해결하는 방법과 while문에도 else를 사용할 수 있다는 것을 배웠다.
스스로 풀지 못하고 다른 사람 코드를 보고 공부했기 때문에 참고 블로그와 간단한 특징만 아래에 작성했다.
큰 틀은 whlie문과 else문을 사용함
5로 나누어 떨어질 때까지 3을 빼는 방법 사용
큰 틀은 while문을 사용
while문 내에서 if-elif문을 사용하여 입력값이 0 이하가 될 때, count -1을 반환. while문 밖에서 print(count)
728x90
반응형
'알고리즘' 카테고리의 다른 글
[그리디] 백준 11047번 동전 0 Python 풀이 (0) | 2021.01.31 |
---|---|
[그리디] 백준 11399번 ATM Python 풀이 (0) | 2021.01.31 |
그리디 알고리즘 (0) | 2021.01.24 |
알고리즘 문제를 풀며 주의해야 할 사항 (0) | 2020.06.21 |
알고리즘 알아보기(1) (0) | 2020.04.13 |