[백준 2869] 달팽이는 올라가고 싶다

코뉴·2021년 8월 14일
0

백준🍳

목록 보기
53/149

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

🥚문제


🥚입력/출력


🍳코드

from sys import stdin

input = stdin.readline

# a -> 낮에 올라가는 거리
# b -> 밤에 올라가는 거리
# v -> 올라가야하는 총 거리
a, b, v = map(int, input().split())
# c -> 낮 - 밤, 하루종일 올라가는 거리
c = a - b

# 낮에 한 번 올라갔다고 가정한다
v = v - a
day = 1 # 낮에 한 번 올라감 -> 하루를 소모함

# 낮에 한 번 올라갔는데 꼭대기에 도달하면 v = 0이니까
# 이 경우를 제외해야 한다
if v > 0:
    # 만약 하루종일 올라가는 거리보다 작거나 같으면 + 1
    if c >= v:
        day += 1
    else:
        if v % c == 0:
            day += v//c
        else:
            day += v//c + 1

print(day)

🧂아이디어

  • 예전부터 몇 번 시도했다가 막힌 문제였는데 드디어 풀어냈다!
  • 딱 보고 반복문으로 풀어야겠다고 생각하기 쉬운데, 주어진 시간이 짧아서 절대 반복문으로는 통과 못한다
  • 마지막에 V(V-A) 값을 가지고 조건문 처리하는 부분에서 여러 반례를 찾아보며 해결할 수 있었다. V가 C로 나누어 떨어지는 경우와 아닌 경우를 구별해야 함을 알게되었다!
profile
코뉴의 도딩기록

0개의 댓글