본문 바로가기

Study/algorithms

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

반응형

안녕하세요.

이번에는 백준의 단계별로 풀어보기중 '수학1'에 있는 달팽이는 올라가고 싶다. 를 풀어보겠습니다. 

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

 

문제 설명

달팽이가 V미터인 나무를 올라가는것이 목적이다. 낮동안은 a만큼 올라가고 밤동안은 b만큼 내려간다. 정상에 올라가면 내려가지 않는다. 달팽이가 정상에 올라가는데 며칠이 걸리는지 구한다.

 

입력

a,b,V

출력

몇일이 걸리는가.

 

나의 사고 과정

하루에 a만큼오르고 b만큼 내려가니까 하루에 a-b만큼 오르겠구만! 그러면 $\frac{V}{(a-b)}$ 이지

그런데 마지막날에 낮동안 정상에 도착하면 내려가지 않아야하는데.. 그렇다면 오르기 전날 까지의 나무 길이를 계산해서 이용하면 되겠다. $\frac{(V-b-1)}{(a-b)} + 1$

 

소스코드

C++

#include <cstdio>

int main() {
    int a, b, v;
    scanf("%d %d %d", &a, &b, &v);
    if (v-a<0) {
        printf("1\n");
    } else {
        printf("%d\n", (v-b-1)/(a-b) + 1);
    }
}

Python3

a, b, v = [ int(i) for i in input().split()]

if v < a:
    print(1)
else:
    print(int((v-b-1)/(a-b) + 1))
    

Golang

package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)

	var a, b, v int64
	fmt.Fscanf(in, "%d %d %d", &a, &b, &v)

	if v-a < 0 {
		fmt.Println(1)
	} else {
		fmt.Println((v-b-1)/(a-b) + 1)
	}
}

 

(이 시기의 나는 golang에서 buffer 를사용하지 않고 입출력을 했는데 이러면 엄청 느리다.)

'Study > algorithms' 카테고리의 다른 글

[백준] 9020. 골드바흐의 추측  (0) 2020.01.19
[백준] 2581. 소수  (0) 2020.01.19
[백준] 2775. 부녀회장이 될테야  (0) 2020.01.19
[백준] 10250. ACM호텔  (0) 2020.01.19
[백준] 1193 분수찾기  (1) 2020.01.18