728x90
백준 2869 달팽이는 올라가고 싶다
문제
https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
풀이
처음 이 문제의 식을 이해하는데 많이 시간이 소요됐다.
이 문제의 핵심은 낮과 밤!
하루를 넘어가는 기준을 잘 생각해봐야 한다.
1일 최대 갈 수 있는 거리 : 낮 이동 거리
2일 최대 갈 수 있는 거리 : 낮 이동거리 - 밤 이동거리 + 낮 이동거리
3일 최대 갈 수 있는 거리 : 낮 이동거리 - 밤 이동거리 + 낮 이동거리 - 밤 이동거리 + 낮 이동거리
이제 조금 규칙이 보이는가?
이때, (V-B)/(A-B) 값이 2.25일이 나왔다.
근데 2.25일이라는 표현을 쓰지 않는다.
2일하고도 6시간이 걸렸다면, 3일 걸린거라 봐야 한다.
그래서 소수점이 있을 경우, 하루 더한 값을 반환해야 한다.
나의 풀이
import sys
input = sys.stdin.readline
A, B, V = map(int, input().split())
# A, B, V = 5,1,6
day = (V - B)/(A - B)
if day % 1 == 0.0:
print(int(day))
else:
print(int(day+1))
'알고리즘' 카테고리의 다른 글
프로그래머스, 정수를 나선형으로 배치하기 (0) | 2023.07.31 |
---|---|
백준 2447번 별찍기 - 10 (0) | 2023.07.31 |
프로그래머스, 예산 (0) | 2023.07.14 |
백준 8983 사냥꾼 (0) | 2023.07.12 |
[Hash Table] 백준 10816 숫자 카드 2 (0) | 2023.06.11 |