[백준/JAVA] 2869번: 달팽이는 올라가고 싶다
🔺 문제
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
🔺 코드
📍 틀림
- 이유 : 시간 초과
반복문을 사용하면 시간 초과로 틀리는 문제라고 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import java.util.*;
import java.io.*;
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(), " ");
long A = Long.parseLong(st.nextToken()); // +
long B = Long.parseLong(st.nextToken()); // -
long V = Long.parseLong(st.nextToken()); // 목표 높이
long height = 0;
long day = 0;
// 반복문 X (시간 초과)
while(true) {
height += A;
day++;
if(height >= V) {
System.out.println(day);
break;
}
height -= B;
}
}
}
|
cs |
📍 정답 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import java.util.*;
import java.io.*;
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(), " ");
long up = Long.parseLong(st.nextToken());
long down = Long.parseLong(st.nextToken());
long goal = Long.parseLong(st.nextToken());
long day = (goal - down) / (up - down);
// 🔔 잔여 블럭이 있는 경우, 하루 더 소요됨 🔔
if((goal - down) % (up - down) != 0) {
day++;
}
System.out.println(day);
}
}
|
cs |
✅ 해결 아이디어
✔ 수학....🤦♀️🤦♀️
📍 걸리는 날 수 = 올라가야 할 높이 / 하루 동안 올라간 높이
- 올라가야 할 높이 = 목표 높이 - 미끄러진 길이
- 하루 동안 올라간 높이 = 올라간 길이 - 미끄러진 길이
📍 Line 16,17 : up-down의 차이 값보다 작은 나머지가 존재한다면, 다음 날 up 때 올라가야하므로 + 1
💥 유의사항
• 정점에 도달하지 않으면 미끄러지지 않는다.
⇨ 잔여블록이 있는 경우, 문제 발생 💦
⇨ up-down의 차이 값보다 작은 나머지가 존재한다면, 다음날 up 때 올라가야 함. ⬆
🔺 다른 풀이들
- 줄글로 설명 진짜 잘하시는 거 같다... 👍👍👍 (복습용)
[Java] 백준 2869번 [달팽이는 올라가고 싶다] 자바
[Java] 백준 2869번 [달팽이는 올라가고 싶다] 자바
velog.io
💬 느낀 점
브론즈인데.. 왜 정답률이 낮을꼬.. 하니
반복문 썼다가 시간초과가 개빡세서 틀린 ... 이런 이유가..🤦♀️💦
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
✔ 최고의 풀이와 설명.. 복습용으로 봐야디...
[백준] 2869번 : 달팽이는 올라가고 싶다 - JAVA [자바]
https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만,
st-lab.tistory.com
- 주석 참고...
[JAVA / 자바] 백준 2869번 - 달팽이는 올라가고 싶다
문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간
kwin0825.tistory.com