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

박진우·2022년 9월 7일
0

알고리즘

목록 보기
23/89

💡백준 2869

◽ 문제

문제를 보면 시간제한이 0.15초이다 즉 반복문을 사용하면 안된다는 소리




◽ 입력 & 출력




◽ 풀이

  • A = 올라갈 수 있는 거리 , B = 미끄러지는 거리 , V= 나무막대 높이

  • 올라가야할 거리 = V-B

  • 달팽이는 낮에만 올라갈 수 있기 때문에 ➡️ 하루에 갈 수 있는 거리 = A - B


✅ 올라가야할 거리 % 하루에 갈 수 있는 거리

  • 올라가야할 거리 % 하루에 갈 수 있는 거리 ==0

    나머지가 0이면 낮 동안에 정상까지 갔다는 뜻


  • 올라가야할 거리 % 하루에 갈 수 있는 거리 !=0

    나머지가 0이면 낮 동안에 정상까지 가지 못해서 밤에 미끄러졌다는 뜻


✅ print문

나머지가 0이면 즉 낮 동안에 올라가야할 거리를 올라단다면

  • (V-B)//(A-B)

    ex) A=2 , B=1, V =5라면 if문을 만족해 day를 구한다.

    (V-B)//(A-B) == 4 // 1 == 4일



나머지가 0이 아니면 즉 낮 동안에 올라가야할 거리를 못 올라가고 밤에 미끄러지는 거리가 있다는 것

  • (V-B)//(A-B)

    ex) A=5 , B=1, V =6라면 if문을 만족하지 못하고 day+1를 구한다.

    (V-B)//(A-B) ==5 // 4 =1일 미끄러지는 거리 +1




💡다른사람 풀이

  • "//"가 아닌 "/"를 사용해 소수점까지 구하고, day(며칠 걸렸는 지) 에 저장한다.

  • A=2 , B=1, V =5

    • day = 4.0

  • A=5 , B=1, V =6

    • day = 1.25

4.04일 걸리는다는 것이지만 1.25 1일보다 0.25더 걸린다는 것이다.

ceil 함수를 사용해 반올림을 사용해주면 된다.





💡배운점

◽ math.ceil()

  • ceil 함수실수 를 입력하면 올림 하여 정수를 반환하는 함수

0개의 댓글