JuneStudy
JuneStudy
JuneStudy
전체 방문자
오늘
어제
  • 분류 전체보기 (21)
    • WIL (4)
    • 알고리즘 (6)
    • 개발 (11)
      • HTML+CSS+Javascript 기본 (0)
      • Typescript (5)
      • React (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
JuneStudy

JuneStudy

알고리즘

백준) 2869번 달팽이는 올라가고 싶다 .python

2021. 12. 7. 22:52

문제

땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.

달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.

달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)

출력

첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.

--------------------- 풀이 ---------------------

처음에는 쉬운문제네? 하고 풀어봤다. 하지만 역시 한번에 풀리는 적이 없는것같다.

시간초과가 뜨는 것을 보고 이것 저것 고쳐보려했지만 결과는 바뀌지 않았다.

a, b, v = map(int,input().split())
total = 0
day=0
while total<v:
    total+=a
    day+=1
    if total>=v:
        break
    total-=b
print(day)

시간초과가 걸리는 코드다. while문이 없어야 한다는 것을 1시간만에 파악하고 

조건 정리

1. 코드 실행 시간제한 0.15초(추가시간 없음)

2. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 막대기가 제일 길고, 올라가는 길이가 길고 , 미끄러지는 길이가 가장 짧다.(자연수)

import math
a, b, v = map(int,input().split())
print(math.ceil((v-b)/(a-b)))

day = (v-b) / (a-b) 다.

ex) 4.2 = 5일이다

따라서 math.ceil을 이용해 올림을 했다.

출처

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

'알고리즘' 카테고리의 다른 글

BFS란? (BFS기본, 송아지찾기 문제)  (0) 2022.01.11
백준) 4948번 베르트랑 공준 .python  (0) 2021.12.08
백준) 2839번 설탕배달 .python  (0) 2021.12.08
백준) 10250번 ACM 호텔 .python  (0) 2021.12.08
백준) 1011번 Fly me to the Alpha Centauri .python  (0) 2021.12.07
    '알고리즘' 카테고리의 다른 글
    • 백준) 4948번 베르트랑 공준 .python
    • 백준) 2839번 설탕배달 .python
    • 백준) 10250번 ACM 호텔 .python
    • 백준) 1011번 Fly me to the Alpha Centauri .python
    JuneStudy
    JuneStudy

    티스토리툴바