https://www.acmicpc.net/problem/2839
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
처음에 내가 짠 계획
1. 가장 적게 들기 위해 더 큰수인 5로 나눈다
2. 5로 나누고 나온 나머지를 3으로 나눴을 때, 나누어 떨어지는 지 확인
-> 안나눠 떨어지면, 5로 나눈 몫을 계속 줄여가며 체크하고 싶음
근데 어떻게 짜야할지 모르겠다 !!
3. 5로만 나누어 떨어지면 그것이 답
4. 3으로만 나누어 떨어지면 이것도 답일 수 있음
구현 시도
나름 생각한대로 짜보려고 노력했는데 , , 만약 3으로도 안 나눠떨어졌을 때
5로 나누는 걸 어떻게 개수를 줄일지 모르겠는 것이다.
N = int(input())
# 젤 적게 들려면 큰거부터
# 5로 나눈 나머지
ans = 0
total = []
if N % 5 == 0 :
ans = N // 5
total.append(ans)
if N % 3 == 0:
ans = N // 3
total.append(ans)
if ans == 0 :
temp = 5
while temp != 0:
# N을 temp로 나눈 나머지가 있다면
if N % temp:
# 나머지가 3으로 쪼개지는지 확인해보자
three = N % temp
if three:
# 5로 나눈 나머지가 3으로 나누어 떨어지면
if three % 3 == 0:
# ans = 5로 나눈 몫 + 3으로 나눈 몫
ans = temp + (three//3)
# 안나눠떨어지면 , ,
else:
정답코드
N = int(input())
bag = 0
while N >= 0:
if N % 5 == 0:
bag += N // 5
print(bag)
break
N -= 3
bag += 1
else:
print(-1)
반복문을 계속 돌려서 5로 나누어 질때까지 반복
안 나누어 떨어지면 3씩 줄이고 가방에 하나씩 넣기
설탕 무게가 0 이하가 되도록 안나눠떨어지면 -1 출력
이런 중학교 수학 같은 문제를 곤란해하다니 . .
ㄷㅓ 열심히 해야겠다.
'백준 문제풀이 > 구현' 카테고리의 다른 글
[백준] 1436 영화감독 숌 - python (1) | 2023.04.05 |
---|---|
[백준] 1018 체스판 다시 칠하기 - python (0) | 2023.04.03 |