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

소스코드
input = __import__('sys').stdin.readline
N = int(input())
bigBag = N // 5
while bigBag >= 0:
if (N - bigBag * 5) % 3 == 0:
print(bigBag + ((N - bigBag * 5) // 3))
break
if bigBag == 0 and N % 3 != 0:
print(-1)
break
bigBag -= 1
문제풀이
5킬로그램짜리 봉지와 3킬로그램짜리 봉지로 입력받은 숫자(N)만큼의 무게를 배분해서 최소의 봉지로 가져가는 경우를 구하거나, 불가능한 경우 -1을 출력하는 문제였다. 5킬로그램짜리 봉지를 최대한 많이 사용하고 남은만큼 3킬로그램짜리 봉지를 사용하는 경우에 봉지의 수가 최소가 될 것 같아서 이 생각을 갖고 코드를 작성하였다.
N킬로그램에 남는 설탕과는 상관없이 사용할 수 있는 최대의 5킬로그램짜리 봉지 수는 N나누기 5의 몫이다. 그리고 그 숫자를 bigBag이라고 하고 bigBag을 0이 될때까지 하나씩 줄이면서 5킬로그램짜리 봉투에 담고 남는 설탕의 무게가 3으로 나머지 없이 나누어 떨어지면 N킬로그램을 최소의 봉지를 사용하여 나눌 수 있는 경우가 나왔다고 판단하고 각각 몇 봉지인지 출력하고 break로 반복문을 끝냈다.
만약 bigBag이 0이고 남은 설탕의 무게가 3으로 나누어 떨어지지 않으면 아예 5킬로그램짜리와 3킬로그램짜리로 나눌 수 없다는 경우이므로 조건문을 걸어 -1을 출력하도록 했다.
'Koala - 10기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 20540:연길이의 이상형 (0) | 2023.03.12 |
---|---|
[백준/JAVA] 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2023.03.12 |
[백준/C++] 2921번: 도미노 (0) | 2023.03.07 |
[백준/Python] 2193번 이친수 (0) | 2023.03.07 |
[백준/python] 1018번 : 체스판 다시 칠하기 (0) | 2023.03.07 |
https://www.acmicpc.net/problem/2839
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
문제분석

소스코드
input = __import__('sys').stdin.readline
N = int(input())
bigBag = N // 5
while bigBag >= 0:
if (N - bigBag * 5) % 3 == 0:
print(bigBag + ((N - bigBag * 5) // 3))
break
if bigBag == 0 and N % 3 != 0:
print(-1)
break
bigBag -= 1
문제풀이
5킬로그램짜리 봉지와 3킬로그램짜리 봉지로 입력받은 숫자(N)만큼의 무게를 배분해서 최소의 봉지로 가져가는 경우를 구하거나, 불가능한 경우 -1을 출력하는 문제였다. 5킬로그램짜리 봉지를 최대한 많이 사용하고 남은만큼 3킬로그램짜리 봉지를 사용하는 경우에 봉지의 수가 최소가 될 것 같아서 이 생각을 갖고 코드를 작성하였다.
N킬로그램에 남는 설탕과는 상관없이 사용할 수 있는 최대의 5킬로그램짜리 봉지 수는 N나누기 5의 몫이다. 그리고 그 숫자를 bigBag이라고 하고 bigBag을 0이 될때까지 하나씩 줄이면서 5킬로그램짜리 봉투에 담고 남는 설탕의 무게가 3으로 나머지 없이 나누어 떨어지면 N킬로그램을 최소의 봉지를 사용하여 나눌 수 있는 경우가 나왔다고 판단하고 각각 몇 봉지인지 출력하고 break로 반복문을 끝냈다.
만약 bigBag이 0이고 남은 설탕의 무게가 3으로 나누어 떨어지지 않으면 아예 5킬로그램짜리와 3킬로그램짜리로 나눌 수 없다는 경우이므로 조건문을 걸어 -1을 출력하도록 했다.
'Koala - 10기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 20540:연길이의 이상형 (0) | 2023.03.12 |
---|---|
[백준/JAVA] 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2023.03.12 |
[백준/C++] 2921번: 도미노 (0) | 2023.03.07 |
[백준/Python] 2193번 이친수 (0) | 2023.03.07 |
[백준/python] 1018번 : 체스판 다시 칠하기 (0) | 2023.03.07 |