새소식

⌨️ Algorithms/백준

[Python] 백준 4796번_캠핑

2023. 2. 7. 18:44

  • -

https://www.acmicpc.net/problem/4796

 

4796번: 캠핑

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다.

www.acmicpc.net

 

  • 캠핑장을 연속하는 P일 중, L일동안만 사용할 수 있음
  • 강산이는 이제 막 V일짜리 휴가를 시작
  • 강산이가 캠핑장을 최대 며칠동안 사용할 수 있을까? (1 < L < P < V)
  • 입력
    • 여러 개의 테스트 케이스로 이루어져 있음
    • 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함
    • 모든 입력 정수는 int범위
    • 마지막 줄에는 0이 3개 주어짐
  • 출력
    • 각 테스트 케이스에 대해서, 강산이가 캠핑장을 최대 며칠동안 사용할 수 있는지 예제 출력처럼 출력
  • 시간 제한: 1초
  • 메모리 제한: 128 MB

 

"""
입출력 예시)

5 8 20
5 8 17
0 0 0
    -> Case 1: 14
       Case 2: 11
"""

 

 

## 의사코드 ##

# ex) 
# 5 8 20 -> Case 1: 14

# L = 5, P = 8, V =20
# -> 연속하는 8일 중 5일동안만 사용 가능, 강산이 휴가는 20일짜리 

#     - 첫 번째 8일 중 5일 사용
#      -> 남은 휴가: (20 - 8) = 12 / 캠핑장 사용 일수: 5 
#     - 두 번째 8일 중 5일 사용
#      -> 남은 휴가: (12 - 8) = 4 / 캠핑장 사용 일수: 5 + 5
#     - 남은 4일 중 4일 모두 사용
#      -> 남은 휴가: 0 / 캠핑장 사용 일수: 5 + 5 + 4


# => 몫 = V // P 
#    나머지 = V % P
#    캠핑장 사용 일수 = L * 몫 + 나머지

 

 

 

첫 번째 시도

 

i = 0 # Case number
while True:
    L, V, P = map(int, input().split())
    if L == 0 and V == 0 and P == 0:
        break 
    i += 1 # Case number + 1
    res = (L * (V // P)) + (V % P)
    print(f"Case {i}:", res)

-> 틀림 (L, P, V 순서를 잘못 씀..!)

 

 

 

두 번째 시도

 

i = 0 # Case number
while True:
    L, P, V = map(int, input().split())
    if L == 0 and V == 0 and P == 0:
        break 
    i += 1 # Case number + 1
    res = (L * (V // P)) + (V % P)
    print(f"Case {i}:", res)

-> 틀림

 

 

 

통과한 코드

 

i = 0 # Case number
while True:
    L, P, V = map(int, input().split())
    if L == 0 and V == 0 and P == 0:
        break 
    i += 1 # Case number + 1
    n = V // P
    r = V % P
    # 나머지가 L보다 작은 경우, 나머지를 더함
    if r < L:
        res = (L*n) + r
    # 나머지가 L보다 크거나 같은 경우, L을 더함
    else:
        res = (L*n) + L 
    print(f"Case {i}:", res)

-> 나머지가 L보다 큰 경우, 나머지를 더하는 게 아니라 L을 더해야

 

 

 

참고)

 

https://velog.io/@dding_ji/baekjoon4796

 

백준 4796. 캠핑 문제풀이 (Python/파이썬)

🔎 백준 4796번 캠핑 문제풀이 (파이썬)

velog.io

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!