반응형
문제
풀이1 - 시간 초과
해당 문제는 시간 제한이 걸려있는 문제로, for문을 활용했더니 시간 초과가 걸렸다.
package step8;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
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()," ");
int a = Integer.parseInt(st.nextToken());//올라가는 미터
int b = Integer.parseInt(st.nextToken());//미끄러지는 미터
int v = Integer.parseInt(st.nextToken());//나무 막대 높이
int prevM = 0; //현재 높이
int day;//걸린 일수
for(day = 1; ; day++) {
prevM += a;
if(prevM >= v) {
break;
}
prevM -= b;
}
System.out.println(day);
br.close();
}
}
풀이2 - 성공
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
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()," ");
int a = Integer.parseInt(st.nextToken());//올라가는 미터
int b = Integer.parseInt(st.nextToken());//미끄러지는 미터
int v = Integer.parseInt(st.nextToken());//나무 막대 높이
int day = (v - b) / (a - b);//걸린 일수
if((v - b) % (a - b) > 0) {
day++;
}
System.out.println(day);
br.close();
}
}
팁
- 문제에서, 달팽이는 정상에 올라간 후 미끄러지지 않는다는 부분을 유의한다.
ex) a = 2, b = 1, v =5일 때,
아래 그림에서 왼쪽을 보면, 정상에 올라간 후 다시 미끄러진다면 5일이 걸린다.
하지만, 달팽이는 정상에 올라간 후 미끄러지지 않기 때문에, 오른쪽 그림처럼 4일이 걸린다.
- day를 (v - b) / (a - b)로 설정한다.
b를 한번 빼주는 이유는, 달팽이는 정상에 올라간 후 미끄러지지 않기 때문이다.
- (v - b) % (a - b) 가 0보다 크면 day를 1 증가한다.
a - b로 정확히 나누어 떨어지지 않는 나무 막대가 남아있을 경우이다.
출처
반응형
'알고리즘 > Java' 카테고리의 다른 글
[CodeUp 기초 100제 JAVA] 기초-출력 1001-1008 (0) | 2021.09.16 |
---|---|
[백준/단계별로 풀어보기] 8. 기본 수학 1 - 10250.ACM 호텔 (Java8) (0) | 2021.09.14 |
[백준/단계별로 풀어보기] 8. 기본 수학 1 - 1193.분수찾기 (Java8) (0) | 2021.09.13 |
[백준/단계별로 풀어보기] 8. 기본 수학 1 - 2292.벌집 (Java8) (0) | 2021.09.13 |
[백준/단계별로 풀어보기] 8. 기본 수학 1 - 1712.손익분기점 (Java8) (0) | 2021.09.13 |