Code&Data Insights

BaekJoon Algorithm - Stage 8 [2839 - 설탕 배달] ( Python 3 ) 본문

Algorithm/BaekJoon Online Judge

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)을 출력한다. 

 

 

 

 

 

[ 정답 코드 ]

 

 

 

 

 

 

 

------------------------------------------

 

 

 

 

처음에는 하루에 몇개씩 풀었는데

이제 한문제 푸는데 너무 오래걸린다 학교 수업이랑 같이 하려니.. ㅠㅠ

그래도 최대한 매일 더 많은 문제를 풀어보자..

다른 사람들은 쉽게 푸는데 이거 심지어 브론즈 레벨..

좀 자괴감 들지만 계속 해보자 ㅠㅠ 

Comments