백준 알고리즘 2869번 달팽이는 올라가고 싶다, 파이썬
이번 문제는 백준 알고리즘의 2869번 달팽이는 올라가고 싶다. 문제이다.
파이썬으로 풀어보았다.
문제는 간단하다.
V높이의 막대에 낮에는 A만큼 올라가고 밤에는 B만큼 올라간다.
그냥 간단한 산술 문제이다.
나는 처음에 while문을 돌렸다가 시간초과로 실패를 했다.
그 코드와 생각을 먼저 올려보려 한다.
문제에 대한 처음 생각
#생각 1. 반대로 위에서부터 내려가는 걸로 생각
#생각 2. V에서 A만큼 빼주고 B만큼 올려주고, count를 1올리는것 반복.
#생각 3. 하지만 A만큼 빼 줬을때 V가 이미 0보다 작거나 같다면 그냥 카운트를 출력
실패한 코드(이유: 시간초과)
A, B, V = map(int, input().split()) count = 1 while True: V = V - A if V <= 0: print(count) break V = V + B count = count + 1
코드를 내고 생각 해 보니, while문을 안써도 풀어졌었다.
그래서 나는 이렇게 생각했다.
다시 도전한 생각
#생각 1. 마지막엔 결국 A만큼 올라가게 되어있다.
#생각 2. 그래서 V-A의 높이 만큼 A-B의 속도로 얼마나 걸리냐를 구하고 1을 더하면 된다.
#생각 3. 소수점이 나올 경우 올림으로 처리한다.
이렇게 생각하고 나온 코드이다.
A, B, V = map(int, input().split()) high = V - A if high % (A-B) == 0: first = int(high/(A-B)) else: first = int(high/(A-B) + 1) print(first + 1)
코드가 훨 간단해졌다.
중간에서 +1을 한 이유는 소수점이 나온 경우도 결국 하루동안 올라가야 되기 때문이다.
간단했지만 시간초과를 생각하지 못했다.
문제 출처
https://www.acmicpc.net/problem/2869
'코딩테스트 > 백준 알고리즘 풀이' 카테고리의 다른 글
[백준 알고리즘/python] 백준 2775번 부녀회장이 될테야, 파이썬 (0) | 2020.04.03 |
---|---|
[백준 알고리즘/python] 백준 10250번 ACM 호텔, 파이썬 (0) | 2020.04.02 |
[백준 알고리즘/python] 백준 1193번 분수찾기, 파이썬 (0) | 2020.03.25 |
[백준 알고리즘/python] 백준 2292번 벌집, 파이썬 (0) | 2020.03.23 |
[백준 알고리즘/python] 백준 2839번 설탕 배달, 파이썬 (0) | 2020.03.21 |
댓글