1일 1백준

1일 1백준 : 2869번 달팽이는 올라가고 싶다

gaonhae 2022. 6. 16. 13:00

1일 1백준 4일차, 오늘 푼 문제는 2869번 문제인 "달팽이는 올라가고 싶다"이다.

 

 

 

 

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

 

 

이 문제는 직전의 두 문제에 비하면 아주아주 쉽다

하지만 어리석은 나는 이 문제를 처음엔 for문을 이용해서 풀려고 했다

아직도 갈 길이 한참 남았다는 것을 되새기는 계기가 되었다

 

출력을 할 때 if문을 넣은 이유는 자바의 정수 나눗셈 처리 방식 떄문이다.

자바는 정수를 나눌 때 나누어떨어지지 않으면 반올림을 하는 것이 아니라 전부 버려버린다

그래서 나누어 떨어지지 않는 경우에는 1을 더해주었다.((n+1)+1)

 

버퍼스트림을 써야하는 것도 이 문제의 특징 중 하나이다

꽤나 귀찮기는 하지만, 성능 차이가 워낙 확실해서 알아두어야할 것 같기는 하다

 

 

 

 

 

 

 

 

 

 

아래로 내리면 정답 코드가 나옵니다. 문제를 아직 풀지 않으신 분들은 주의해주세요.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

import java.io.*;

public class pro2869 {
    public static void main(String[] args) throws IOException{

        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter((System.out)));
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

        String[] nums = bf.readLine().split(" ");
        int a = Integer.parseInt(nums[0]);
        int b = Integer.parseInt(nums[1]);
        int v = Integer.parseInt(nums[2]);
        if((v-a)%(a-b) != 0){
            bw.write(String.valueOf((v-a)/(a-b)+2));
        }
        else{
            bw.write(String.valueOf((v-a)/(a-b)+1));
        }
        bw.flush();
        bw.close();
    }
}

'1일 1백준' 카테고리의 다른 글

1일 1백준 : 10757 큰 수 A + B  (0) 2022.06.18
1일 1백준 : 10250번 ACM호텔  (0) 2022.06.17
1일 1백준 : 1193번 분수찾기  (0) 2022.06.16
1일 1백준 : 2292번 벌집  (0) 2022.06.14
1일 1백준 : 1712번 손익분기점  (0) 2022.06.14