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

2022. 7. 30. 23:37·🎲 알고리즘 공부/백준

📝 문제 설명

> 

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

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

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

 

 

입출력 예시

 

 

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

 

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

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

www.acmicpc.net


🎨 풀이

💡 전체 코드

import sys

a, b, v = map(int, sys.stdin.readline().split())

result = 0

v = v - a
result += 1

result += v // (a - b)

if v % (a-b) != 0 :
    result += 1

print(result)

> 핵심 : 시간 제한 때문에 for문 대신 계산으로 풀어야 함!

           

 

🍦 코드 설명 (실행 순서대로 나열)

# main

a, b, v = map(int, sys.stdin.readline().split())

1. a와 b, v를 입력받는다.

 - a : 달팽이가 낮에 올라가는 높이

 - b : 달팽이가 밤에 내려가는 높이

 - v : 달팽이가 올라가야할 나무의 높이

 

v = v - a
result += 1

2. v = v - a

 - 먼저 a를 빼주고 시작한다. 

 - 딱 맞춰서 도착할 수도 있고, 아니면 좀 넉넉하게 도착할 수도 있고! 여튼 끝은 -a 로 끝나는 게 맞기 때문에 이 작업을 미리 해준 것이다. (도착한 이후에는 +b를 해줄 필요가 없다!)

3. result에 1을 더해준다.

 - 위에서 올라가는 작업을 했으니 result에 1을 더해주는 것이다.

 

result += v // (a - b)

4. result에 v // (a-b)를 더해준다.

 

if v % (a-b) != 0 :
    result += 1

5. 만약 v % (a-b)가 0이 아니라면 1을 더해준다.

 - 딱 떨어지는 게 아니라는 거니까 1을 더해준다.  (아직 올라갈 게 남아 있다는 것이기 때문)

 - 예를 들면, 5 % (4-2) 라면, 나머지가 1이라서 2번 올라가고도 한번 더 올라가야 끝이 난다. 딱 떨어지지 않으면 이런 경우가 생기기 때문에 +1을 해주는 것이다.

 

print(result)

 

6. result를 출력한다.


​끝~

 

⭐ 느낀점

> 오늘은 잘 설명한건지 모르겠다.ㅠㅠ 달팽이.. 알 거 같은데 설명을 잘 하기에는 아직 부족한 그정도 인것 같다. 내일부터는 잘해야지..ㅠㅠ

'🎲 알고리즘 공부 > 백준' 카테고리의 다른 글

[백준] 10250번 - ACM 호텔 (파이썬)  (0) 2022.08.01
[백준] 14659번 - 한조서열정리하고옴ㅋㅋ (파이썬)  (0) 2022.07.31
[백준] 2864번 - 5와 6의 차이 (파이썬)  (0) 2022.07.29
[백준] 17478번 - 재귀함수가 뭔가요? (파이썬)  (0) 2022.07.28
[백준] 10870번 - 피보나치 수 5 (파이썬)  (0) 2022.07.27
'🎲 알고리즘 공부/백준' 카테고리의 다른 글
  • [백준] 10250번 - ACM 호텔 (파이썬)
  • [백준] 14659번 - 한조서열정리하고옴ㅋㅋ (파이썬)
  • [백준] 2864번 - 5와 6의 차이 (파이썬)
  • [백준] 17478번 - 재귀함수가 뭔가요? (파이썬)
듬듬
듬듬
  • 듬듬
    두드림
    듬듬
  • 전체
    오늘
    어제
    • 분류 전체보기 (267)
      • 📑 신입일기 (35)
      • 🎲 알고리즘 공부 (192)
        • 프로그래머스 (76)
        • 백준 (96)
        • 코드업 (19)
      • 📘 독서 (0)
      • 💌 일상 (12)
        • 일상 (5)
        • 기록 (7)
      • 📜 자격증 (2)
        • 정보처리기사 (2)
      • 학교 공부 (20)
        • ICT 개론 (14)
        • 리눅스 (6)
      • ChatGPT 랑 놀기 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    파이썬
    행렬덧셈
    신입일기
    코드업
    스프링부트
    정처기
    티스토리챌린지
    BOJ
    til
    코린이
    6월 목표
    nodejs
    50문답
    폰켓몬
    피보나치수
    프로그래머스
    백준
    충무로
    스프링 부트
    찬양추천
    연습문제
    코테
    카카오
    정보처리기사
    컨텐더스
    일기
    오블완
    코민이
    오버워치
    codeup
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
듬듬
[백준] 2869번 - 달팽이는 올라가고 싶다 (파이썬)
상단으로

티스토리툴바