Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 라우터
- 토이프로젝트
- 다익스트라 알고리즘
- react
- 동적프로그래밍
- nodejs
- spring
- Spring Boot
- java
- 서버구축
- sort
- 탐욕법
- EC2
- AWS
- 리액트
- ELB
- 백준알고리즘
- 백준
- Router
- 정렬
- EventListener
- 스터디
- BFS
- url parsing
- 브루트포스
- 알고리즘
- Algorithm
- 완전탐색
- 자료구조
- mysql
Archives
- Today
- Total
공부하는 블로그
Baekjoon | Q.2869 - 달팽이는 올라가고 싶다 본문
2869번: 달팽이는 올라가고 싶다
문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽
www.acmicpc.net
달팽이가 나무를 오르는데 얼마나 걸리는지 구하는 문제이다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int v = sc.nextInt();
int updownV = v - a;
int oneDay = a - b;
int totalDays = 0;
if(updownV <= 0) {
totalDays = 1;
}else {
if(updownV % oneDay == 0) {
totalDays = updownV / oneDay + 1;
}else {
totalDays = updownV / oneDay + 2;
}
}
System.out.println(totalDays);
}
}
처음 풀이는 조건문을 이용하여 해결했다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int v = sc.nextInt();
int totalDays = 0;
int now = 0;
while(now < v) {
totalDays++;
now += a;
if(now >= v) break;
now -=b;
}
System.out.println(totalDays);
}
}
인터넷에 다른 풀이를 보니 반복문을 이용한 경우도 있어 다시 한번 풀어봤다. 근데 시간초과가 발생하는데 왜그러는지를 해결하지 못했다.... 왜그러는걸까....ㅜㅜ
'알고리즘 공부' 카테고리의 다른 글
Baekjoon | Q.1929 - 소수 구하기(에라토스테네스의 체) (0) | 2019.12.29 |
---|---|
Baekjoon | Q.1978 - 소수 찾기 (0) | 2019.12.28 |
Baekjoon | Q.10250 - ACM 호텔 (0) | 2019.12.26 |
Baekjoon | Q.1316 - 그룹 단어 체커 (0) | 2019.12.23 |
Baekjoon | Q.5622 - 다이얼 (0) | 2019.12.23 |
Comments