11주차_#4796 캠핑

Yona·2021년 10월 7일
0

🍕 baekjoon

목록 보기
12/31

😀 문제 이해

캠핑장을 연속하는 P일 중, L일동안만 사용할 수 있다. 강산이는 이제 막 V일짜리 휴가를 시작했다. 강산이가 캠핑장을 최대 며칠동안 사용할 수 있을까? (1 < L < P < V)

💬 처음 봤을때

이렇게 중간중간 최대 L일을 사용하고 나서 하루씩 쉬면 될 것 같다.

최적해 검증
최대 L일 사용하고, 하루 쉬는 것을 반복하는것이 최대 P를 보장하는가? = 자명하게 보장

일반화
V일 L+1로 나누었을때 몫과 나머지를 구한다.
P = 몫*L + 나머지 이다.

💬 다시 봤을때

또 문제를 잘못 이해했다🤦‍♀️

예시 인풋아웃풋을 손으로 계산해보고 어..? 하고 다른 블로그 를 보고 내가 잘못 이해한걸 알게 됐다.

일반화

  • 휴가의 V일 중 (V//P) 번 L일씩 온전히 캠핑장 이용
  • 휴가의 V일 중 (V%P)과 L 중 작은 수 만큼 캠핑장 이용

👩🏻‍💻 1회차 코드

cnt = 1
while(True) :
  L, P, V = map(int, input().split())
  if L == 0 and P == 0 and V == 0 : break # 종료
  res = (V//P)*L
  res += min((V%P), L)
  print('Case %d: %d' %(cnt, res))
  cnt += 1

통과!!

느낀점

  • 귀찬다고 넘어가지 말고
    예시 Input, output 꼭 일일이 계산해서,
    내가 문제를 제대로 이해한건지 검사합시다

  • 근데 어떻게 해야 저 문제를 읽고 바로 이렇게 이해하지..? 나는 해설 없이 저 그림으로 이해되지 않는데 내가 이상한가 넘무 슬프다

profile
Sometimes you win, sometimes you learn 🏃‍♀️

0개의 댓글