새벽_나그네
12시 지난 새벽
새벽_나그네
전체 방문자
오늘
어제
  • 분류 전체보기
    • TIL
    • DevLog
    • Algorithm
    • ComputerScience
    • etc

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 코딩프로젝트
  • docker
  • 코린이
  • 자기주도학습
  • 내일배움단
  • portfolio
  • machine learning
  • 스파르타코딩클럽
  • 내일배움캠프
  • 국비지원
  • 코딩
  • Github
  • Python
  • 내일배움카드
  • AI트랙
  • Selenium 4
  • TodayILearned
  • til
  • 개발일지
  • 프로그래머스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
새벽_나그네

12시 지난 새벽

Algorithm

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

2022. 4. 25. 00:37

문제 보기: https://www.acmicpc.net/problem/2869

 

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

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

www.acmicpc.net

문제

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

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

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

 

입력

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

출력

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

 

풀이 과정

코드1

성공한 내용으로 값에 대하여 일차함수로 생각하고 각 숫자의 관계를 나누어떨어진 몫과 나머지의 관계로 생각하여 풀어보았습니다.

첫 조건문에서는 첫번째 시도일때 A값이 V보다 크거나 같을때 밤에 떨어지는 B도 수행할 필요도 없는 것을 나타냈으며 한사이클을 돌때마다 1이증가하지만 낮에 V를 넘어 버릴때는 2가 증가하게 하는 방식으로 해결하였습니다.

 

코드2

낮과 밤이라는 함수를 만들어서 풀이하였지만 올라가는 것을 while문으로 돌리면서 수행하여서 시간초과가 되었습니다.

 

코드

코드1

A, B, V = map(int, input().split())

V = V - A

if V == 0:
    print(1)
elif V % (A - B) == 0:
    print(V // (A - B)+1)
else:
    print(V // (A - B) + 2)

코드2

A, B, V = map(int, input().split())

high = 0
count = 0


def day(high, A, V):
    if high + A < V:
        high = high + A
    else:
        high = V

    return high


def night(high, B):
    if high < 0:
        high = 0
    else:
        high = high - B
    return high


while 1:

    high = day(high, A, V)
    count += 1
    if high == V:
        break
    high = night(high, B)

print(count)
저작자표시 비영리 변경금지 (새창열림)

'Algorithm' 카테고리의 다른 글

[백준_2609] 최대공약수와 최소공배수  (0) 2022.04.25
[백준_1436] 영화감독 숌  (0) 2022.04.25
[백준_1011] Fly me to the Alpha Centauri  (0) 2022.04.22
[백준_4948] 베르트랑 공준  (0) 2022.04.22
[백준_2839] 설탕 배달  (0) 2022.04.22
    'Algorithm' 카테고리의 다른 글
    • [백준_2609] 최대공약수와 최소공배수
    • [백준_1436] 영화감독 숌
    • [백준_1011] Fly me to the Alpha Centauri
    • [백준_4948] 베르트랑 공준
    새벽_나그네
    새벽_나그네
    IT, 프로그래밍, 정보, 스마트스토어

    티스토리툴바