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

2025. 5. 27. 09:56·python/algorithm
목차
  1. 문제 개요
728x90

문제 개요

문제 링크: https://www.acmicpc.net/problem/2869

 

문제를 설명하자면 어느 날 달팽이가 우물을 올라가기로 결심했습니다.

하지만 이 우물의 높이는 V미터이고, 달팽이는 다음과 같은 규칙으로 이동합니다.

  • 낮에 A미터 올라감
  • 밤에 B미터 미끄러짐

이 행동을 반복하면서, 달팽이는 언젠가 꼭대기에 도달하고 말 겁니다.

여기서 질문은 이 달팽이는 며칠 만에 우물 꼭대기에 도달할까요?

 

예를 들어 입력이

2 1 5

 

이 들어왔다면

  • 낮에 2미터 올라가고
  • 밤에 1미터 미끄러지고
  • 우물의 높이는 5미터라는 뜻입니다.

진행과정을 자세하게 살펴보겠습니다.

날짜 아침에 올라감 저녁에 미끄러짐 위치
1일차 +2 -1 1
2일차 +2 -1 2
3일차 +2 -1 3
4일차 +2 -1 4
5일차 +2 도착! 6

 

그럼 최종적인 정답은 5일이 됩니다.

 

여기서 핵심은 도착한 마지막날에는 미끄러지지 않는다는 점입니다.

달팽이는 아침에 올라가고, 만약 올라간 후 꼭대기 이상이라면 그날로 끝입니다.

따라서 밤에 미끄러지는 것은 "도착 전까지만" 고려하면 됩니다.

 

수학 공식으로 살펴보면

  • 하루에 실제로 올라가는 양 = A−BA−B
  • 도착 직전까지 올라가야 하는 높이 = V−AV−A
  • 그럼 A−BA−B로 나눈 뒤, 마지막 하루를 더해주면 됩니다.

[V−AA−B]+1[V−AA−B]+1

 

이제 python으로 문제를 풀어보겠습니다.

import sys
import math

def solve():
    # A: 낮에 올라가는 거리, B: 밤에 미끄러지는 거리, V: 총 높이
    A, B, V = map(int, sys.stdin.readline().split())

    # 핵심 개념:
    # 마지막 날에는 미끄러지지 않기 때문에,
    # V - A 만큼을 매일 (A - B)만큼 이동한다고 보고,
    # 그걸 올림해서 일수 계산 후 +1 해주면 된다.

    days = math.ceil((V - A) / (A - B)) + 1

    print(days)

if __name__ == "__main__":
    solve()

 

핵심 코드는 days = math.ceil((V - A) / (A - B)) + 1 이 부분 입니다.

  • (V - A)는 마지막 날을 제외한 거리
  • 하루에 A - B 만큼 올라감 → 이만큼 반복하면 마지막 날 도달 가능
  • +1은 마지막 날 “올라간 후 미끄러지지 않는” 하루

 

 

728x90
반응형
저작자표시 비영리 변경금지 새창열림새창열림새창열림

'python > algorithm' 카테고리의 다른 글

[백준 11399번] ATM  11 2025.05.30
[백준 11047번] 동전 0  11 2025.05.28
[백준 2042번] 구간 합 구하기  00 2025.05.21
[백준 11866번] 요세푸스 문제 0 - 큐  00 2025.05.20
[백준 10866번] 덱 – 덱 자료구조 구현  00 2025.05.19
  1. 문제 개요
'python/algorithm' 카테고리의 다른 글
  • [백준 11399번] ATM
  • [백준 11047번] 동전 0
  • [백준 2042번] 구간 합 구하기
  • [백준 11866번] 요세푸스 문제 0 - 큐
Balang
Balang
음악 전공생의 개발일지
  • Balang
    Balang
    Balang
  • 전체
    오늘
    어제
  • 반응형
    • All Post 148148 N
      • python 4545
        • selenium 44
        • algorithm 99
        • Django 66
        • Pandas | Numpy 2222
      • SQL 99
      • Data Engineer 3030 N
      • Data Scientist 33
      • Data Analysis 99
      • Computer Science 3535
      • Why? 1515
      • 마음가짐 22
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
Balang
[백준 2869번] 달팽이는 올라가고 싶다
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.