[백준] 4796번 - 캠핑
아이디어
문제를 읽자마자 식이 떠올랐다.
8일 중 5일의 휴가를 사용할 수 있는 사람에게 20일의 휴가가 생긴다면,
(20//8) * 5 + 20%8 = 14
이와 같은 식을 일반화시켜서 코드를 작성하였다.
1차 코드
# 캠핑
import sys
while(1):
L,P,V = map(int,sys.stdin.readline().split())
if L == 0 and P == 0 and V == 0: # 종료조건
exit()
camping = V // P
max_camping = L * camping + (V - P * camping)
print(max_camping)
=> 런타임에러 발생
1) L값이 남은 기간보다 더 짧을 수 있기 때문에 min함수를 이용하여 값을 비교해주어야 한다.
2) 출력이 Case %d: %d 형태로 되어야 하는데, 이를 신경쓰지 못했다.
2차 코드
# 캠핑
import sys
i = 1
while(1):
L,P,V = map(int,sys.stdin.readline().split())
if L == 0 and P == 0 and V == 0:
break
camping = V // P
max_camping = L * camping + min(L, V % P)
print("Case %d: %d" %(i,max_camping))
i += 1
Author And Source
이 문제에 관하여([백준] 4796번 - 캠핑), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yerimstar/백준-4796번-캠핑저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)