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

Ga0·2023년 4월 2일
2

baekjoon

목록 보기
17/137
post-thumbnail
post-custom-banner

문제 해석

  • 콘솔로 부터 A(낮에 올라갈 수 있는 미터), B(밤에 자는 동안 미끄러지는 미터), V(총 나무 막대 미터)를 입력받아서 달팽이가 며칠에 걸쳐 올라갈 수 있는지 계산하는 알고리즘이다.
  • 문제를 이해하는 것은 어렵지않았다.

  • 위의 풀이과정을 통해 아래와 같은 코드가 나왔다.

코드

import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringTokenizer st = new StringTokenizer(br.readLine());
        br.close();
        //(1 ≤ B < A ≤ V ≤ 1,000,000,000) => long
        long A = Long.parseLong(st.nextToken()); //낮에 올라갈 수 있는 미터
        long B = Long.parseLong(st.nextToken()); //밤에 자는 동안 미끄러지는 미터
        long V = Long.parseLong(st.nextToken()); // 총 나무 막대 미터

        long dayDist = A - B; //하루에 움직이는 거리(미터)
        long goalDest = V -B; //최종 목적지(미터)
        
        // 최종목적지 / 하루에 움직이는 거리
        if(goalDest%dayDist != 0){ //나눠 떨어지지 않는 경우는 하루를 더 추가로 가야한다는 것
            System.out.println(goalDest/dayDist + 1);
        }else{ // 나눠떨어진다는 것은 바로 낮에 도착했다는 뜻
            System.out.println(goalDest/dayDist);
        }

    }
}

결과

느낀점

  • 문제가 간단하게 풀린 건 오랜만인 것 같아서 기분이 꽤 좋았다.

  • 오늘 벚꽃이 예쁘게 펴서 오늘의 문제와 관련은 없지만 올려본다.
post-custom-banner

3개의 댓글

comment-user-thumbnail
2024년 7월 2일

반복문으로 풀다가 시간초과나서 찾아보니 나머지를 이용한 연산이 있었군요. 문과는 울고갑니다.

1개의 답글