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 |