관리 메뉴

100세까지 코딩

[백준] 2869번 달팽이는 올라가고 싶다(파이썬) 본문

코딩테스트/파이썬

[백준] 2869번 달팽이는 올라가고 싶다(파이썬)

100세까지 코딩 2024. 1. 16. 15:34
문제

나의 생각
  • 시간 제한을 보고 반복문은 안될 것이라 판단.
  • 정상 = (정상-올라갈수 있는 길이)를 해주면 추후에  + 1 DAY 해주면 된다.
  • 바뀐 목적지를 (올라갈수 있는 길이 - 미끄러지는 길이)로 나눠 몫을 저장한다.
  • 몫에다가 +1을 한다.
틀린 나의 풀이
A, B, V = map(int, input().split())
V = V - A
result = V//(A-B) if (A-B) <= V else 1
result += 1

print(result)

- 먼저 (A-B) <= V 보다 바로 올라갈수 있는 길이 A가 V보다 크면 하루 만에 올라간다. 즉, A > V : 1

- 둘째, (V-A) // (A-B)가 나머지가 0으로 바로 떨어지지 않을 수도 있다. 즉, 나머지가 0이 아니면 +2 DAY

최종 풀이
A, B, V = map(int, input().split())

if A > V:
    print(1)
else:
    if (V - A) % (A - B) == 0:
        print((V - A) // (A - B) + 1)
    else:
        print((V - A) // (A - B) + 2)
참고
수학적 풀이는 티어보다 더 어렵게 느껴진다..
수학적 사고력을 키우는 노력이 필요하겠다.