[백준] 2869번 달팽이는 올라가고 싶다 해설 및 풀이 (Python)

2025. 3. 12. 14:43·Study/코딩 테스트
반응형

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

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

 

 


문제

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

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

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

입력

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

출력

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

 


문제 유형

수학

 

풀이 방법 도출

 

달팽이는 낮 동안 A 미터를 올라가고, 밤에 B 미터를 미끄러집니다. 따라서 하루에 실질적으로 올라가는 거리는 A - B 미터입니다.

마지막 날에는 미끄러지지 않기 때문에 V - A 까지 이동하면 그 다음날 바로 도착할 수 있습니다.

  1. 정상에 도달하는 마지막 날을 제외한 거리를 (A - B) 로 나누어 일수를 계산합니다. days = (V - B) / (A - B)
  2. 이때 나누어진 결과가 정수라면 그대로 사용하고, 소수점이 있다면 +1을 합니다.

 

시간 복잡도

  • O(1)

핵심 코드 삽입 및 설명
import sys


def calculate_days(A: int, B: int, V: int) -> int:
    # 정상에 도달하는 날에는 미끄러지지 않으므로 V - A를 먼저 계산
    days = (V - B) / (A - B)
    return int(days) if days == int(days) else int(days) + 1


# 입력 받기
A, B, V = map(int, sys.stdin.readline().split())
# 결과 출력
print(calculate_days(A, B, V))
반응형
저작자표시 비영리 변경금지 (새창열림)

'Study > 코딩 테스트' 카테고리의 다른 글

[백준] 1932번 정수 삼각형 해설 및 풀이 (Python)  (0) 2025.03.13
[백준] 2798번 블랙잭 해설 및 풀이 (Python)  (0) 2025.03.13
[백준] 1753번 최단경로 해설 및 풀이 (Python)  (0) 2025.03.11
[백준] 11725번 트리의 부모 찾기 해설 및 풀이 (Python)  (0) 2025.03.11
[백준] 7576번 토마토 해설 및 풀이 (Python)  (0) 2025.03.10
'Study/코딩 테스트' 카테고리의 다른 글
  • [백준] 1932번 정수 삼각형 해설 및 풀이 (Python)
  • [백준] 2798번 블랙잭 해설 및 풀이 (Python)
  • [백준] 1753번 최단경로 해설 및 풀이 (Python)
  • [백준] 11725번 트리의 부모 찾기 해설 및 풀이 (Python)
Dev Chu
Dev Chu
  • Dev Chu
    Log_Double 7
    Dev Chu
  • 전체
    오늘
    어제
    • LOG LIST (201)
      • log Double 7 (2)
        • notice (1)
        • 회고록 (1)
      • Study (112)
        • 과제 (2)
        • 코딩 테스트 (105)
        • 대규모 시스템 설계 기초 (5)
      • CS (10)
        • 자료구조 & 알고리즘 (4)
        • Design Pattern (2)
        • TIL (4)
      • FrontEnd (26)
        • HTML & CSS (16)
        • JavaScript & jQuery (9)
        • React (1)
      • BackEnd (24)
        • Java (4)
        • Python (6)
        • Database (0)
        • Spring (6)
      • Infra & DevOps (3)
        • AWS (3)
        • Git (8)
      • Project (4)
        • repo_bis (2)
        • WhiteMonday (2)
      • ETC (20)
        • TIP (13)
        • Error (5)
        • SQLD (2)
  • 블로그 메뉴

    • 코딩 테스트
  • 링크

    • GitHub
  • 공지사항

    • Log Double 7
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Dev Chu
[백준] 2869번 달팽이는 올라가고 싶다 해설 및 풀이 (Python)
상단으로

티스토리툴바