공부함
알고리즘 문제 풀이 - 백준 #2869번: 달팽이는 올라가고 싶다 (JAVA) 본문
https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
문제 이해 못하는 사람은 없을거라 생각하고..
while문으로 count 할때마다 거리 더하고 거리 빼고.. 이렇게 하면 무조건 시간초과가 걸린다.
한가지 수식으로 풀어야 한다.
또 한가지 수식으로만 풀어도 시간초과가 날 수 있다.
그럴땐 입출력 문을 Scanner가 아닌 BufferReader 를 이용해야한다.
BufferReader가 Scanner보다 실행시간이 빠르기 때문.
내가 StringBuffer 사용이 미숙해서 애 먹은 문제.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class snail_2869 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int A= Integer.parseInt(st.nextToken());
int B= Integer.parseInt(st.nextToken());
int V= Integer.parseInt(st.nextToken());
int count =0;
count=(V-B)/(A-B);
if(((V-B)%(A-B)!=0) || ((V-B)/(A-B)==0)) {
count+=1;
}
System.out.print(count);
}
}
느낀점: 간단한 수학 문제도 약간 시간이 걸린다. 그리고 꼼꼼하게 풀지 않아서 한마디로 설명해 보라 하면 잘 못하겠다.
StringBuffer 개념을 완벽하게 이해하도록 공부하자.
자바의 정석 String 클래스 영상 부터~
https://www.youtube.com/watch?v=PG8kPjwWbWU&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=106
'알고리즘 > 백준' 카테고리의 다른 글
알고리즘 문제 풀이 - #2751번: 수 정렬하기 2(JAVA) (0) | 2022.08.02 |
---|---|
알고리즘 문제풀이 - 백준#2231번: 분해합 (0) | 2022.04.03 |
알고리즘 문제 풀어보기 - 백준 #1193번: 분수 찾기(JAVA) (0) | 2022.02.02 |
알고리즘 문제 풀어보기 - 백준 #2839번: 설탕 배달 (JAVA) (0) | 2022.01.17 |
알고리즘 문제 풀어보기 - 백준 #11497번: 통나무 건너뛰기 (JAVA) (0) | 2022.01.15 |