Code&Data Insights
BaekJoon Algorithm - Stage 8 [2839 - 설탕 배달] ( Python 3 ) 본문
BaekJoon Algorithm - Stage 8 [2839 - 설탕 배달] ( Python 3 )
paka_corn 2022. 1. 26. 08:28
2022.01.25
# Stage 8 - [2839]
[ 2839 ] - 설탕 배달
[ my code - 1st attempt ]
[ my code - 2nd attempt ]
---> 예제는 다 옳게 출력되는데
틀려서 나름 경우의 수를 더 추가해서 했는데 또 틀림..
=====> 일단 if-else 문으로 푸는건 너무 막연하고 내가 입력한 케이스는 너무 적었다.
거의 한시간~2시간 동안 붙잡고 있다가 다른 분들 어떻게 풀었는 지 쭉 봤는데 거의 함수나 whilte문 이용해서 풀어서 나도 그쪽
으로 생각해 보기로 했다. 너무 안풀리면, 앞으로 수학적으로 먼저 알고리즘 정리한 후에 다른 방법을 생각해 보는게 좋을 것 같다.
[ 풀이 ]
여기서 3키로와 5키로의 설탕 주머니를 배달할 때, 5나 3으로 딱 떨어지는 수가 아니면 5키로의 설탕주머니를 최대한 많이 배분한 후 그 남은 값에서 3키로의 설탕주머니를 몇개나 들고 갈지를 생각 할수 있다.
1) 5키로 설탕 주머니로만 들고 갈 수 있는 경우
2) 5키로 설탕 주머니로만 들고 갈수 없을 경우
(1) 5키로 설탕 주머니 (n)개와 3키로 설탕 주머니 1개 => 답 : n+1 개
(2) 5키로 설탕 주머니 (n-1)개와 3키로 설탕 주머니 2개 => 답 : (n-1) + 2 개
(3) 5키로 설탕 주머니 (n-2)개와 3키로 설탕 주머니 3개 => 답 : (n-2) + 3개
.
.
.
.
(p) 5키로 설탕 주머니 0개와 3키로 설탕 주머니 (p)개 => 답 : p 개
===> 이런 식으로 주어진 수 n에서 5키로의 설탕 봉지수로 나눈 나머지가 3으로 나누어지지않을 때는 5키로 설탕을 하나씩 빼고, 나머지에 숫자 5를 추가해 3으로 나누어 지는지 본다. 마지막의 P 경우처럼 3키로 설탕 주머니로만 나누어 지는 수라면 그 수인 p를 출력하고
아니라면 (-1)을 출력한다.
[ 정답 코드 ]
------------------------------------------
처음에는 하루에 몇개씩 풀었는데
이제 한문제 푸는데 너무 오래걸린다 학교 수업이랑 같이 하려니.. ㅠㅠ
그래도 최대한 매일 더 많은 문제를 풀어보자..
다른 사람들은 쉽게 푸는데 이거 심지어 브론즈 레벨..
좀 자괴감 들지만 계속 해보자 ㅠㅠ
'Algorithm > BaekJoon Online Judge' 카테고리의 다른 글
BaekJoon Algorithm - Stage 11 < Brute Force Search - 완전 탐색 > [ 2798 ]( Python 3 ) (0) | 2022.01.28 |
---|---|
BaekJoon Algorithm - Stage 8 [10757, 2775 ] ( Python 3 ) (0) | 2022.01.27 |
BaekJoon Algorithm - Stage 10 [10872,10870] ( Python 3 / JAVA ) (0) | 2022.01.23 |
BaekJoon Algorithm - Stage 8 [1712, 2869] ( Python 3 ) (0) | 2022.01.18 |
BaekJoon Algorithm - Stage 1 ~ 7 [Review] (0) | 2022.01.18 |