처음부터 차근차근
달팽이는 올라가고 싶다 - 문제풀이(수정 중) 본문
반응형
문제
https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
예제 입력1 분석
2 // 올라가는 미터 1 // 미끄러지는 미터 5 // 나무의 높이(미터)
내 풀이
처음에 이렇게 풀었더니 시간 초과가 났다.
import java.io.*;
import java.util.*;
public class Main
{
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 up = Integer.parseInt(st.nextToken());
int down = Integer.parseInt(st.nextToken());
int tree_height = Integer.parseInt(st.nextToken());
int count = 1;
int climb = 0;
while (true) {
climb += up;
if (climb >= tree_height) {
break;
}
climb -= down;
count++;
}
bw.write(String.valueOf(count));
br.close();
bw.close();
}
}
제한 시간이 0.15초인데 while문에서 시간 초과가 난 것 같다.
제한 시간을 맞추려면 반복문을 사용해서는 안된다.
그리고 간과한 부분이 하루는 낮 + 밤이다.
그렇기 때문에 떨어지는 값도 계산을 해줘야한다.
반응형
'알고리즘' 카테고리의 다른 글
정수 n개의 합 구하기 (1) | 2023.01.26 |
---|---|
acm 호텔 문제 (0) | 2022.12.25 |
최소로 거치는 벌집 개수 구하기 (0) | 2022.10.22 |
이친수 구하기 - 동적계획법 (2) | 2022.10.14 |
그리디 알고리즘 (0) | 2022.10.13 |
Comments