Notice
Recent Posts
Recent Comments
Link
- Today
- Total
Archives
Tags
- 백준 #자바
- Java
- JAVA #핸드폰 번호 가리기 #프로그래머스 #자바
- JAVA #자바 #프로그래머스 #나머지가 1이되는 수
- 문자열 다루기 기본 #자바 #JAVA
- 스프링 #의존성 주입 #DI
- 자바 #프로그래머스 #JAVA #최솟값 만들기 #코딩테스트
- JAVA #자바 #프로그래머스 #숫자의 표현
- 최대값과 최솟값
- 프로그래머스
- JAVA #프로그래머스 #문자열 내림차순으로 배치하기
- SW공학
- IntelliJ #인텔리제이 #교육용
- 데이터베이스 #DB #데이터 #정의 #기본
- JAVA #프로그래머스 #약수의 개수와 덧셈
- JAVA #프로그래머스
- Could not resolve all files for configuration
- JAVA #자바 #프로그래머스 #두 정수 사이의 합
- JAVA #자바 #프로그래머스 #서울에서 김서방 찾기
- 콜라츠 추측 #자바 #JAVA #프로그래머스
- 게임 맵 최단거리 #자바 #JAVA #프로그래머스
- 최대값과 최솟값 #자바 #JAVA
- JAVA #코드업 #기초 100제
- 나누어 떨어지는 숫자 배열 #자바 #JAVA #프로그래머스
- 자바 #JAVA #프로그래머스 #정수 내림차순으로 배치하기
- JAVA #백준
- 백준 #JAVA #자바
- 빌드 에러
- servlet
- 자바 #프로그래머스 #JAVA #다음 큰 숫자
MOMONOTE
(JAVA) 백준 2869 달팽이는 올라가고 싶다 본문
문제 자체는 간단하다.
로직은 맞지만 시간 초과가 발생한다.
import java.util.*;
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();
sc.close();
int days = 1;
int sum = 0;
if(A>=V){
System.out.println(1);
}
while(true){
sum = sum + A;
if(sum>=V){
System.out.println(days);
break;
}
sum = sum - B;
days++;
}//while()
}
}
시간제한이 0.15초....였다.
시간을 줄이기 위해 BufferedReader를 사용해 보았다.
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));
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 days = 1;
int sum = 0;
if(A>=V){
System.out.println(1);
}
while(true){
sum = sum + A;
if(sum>=V){
System.out.println(days);
break;
}
sum = sum - B;
days++;
}//while()
}
}
결과는
ㅠㅠ
https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
막힐 때는 Stranger's LAB!
정말 간단한 구현 로직을 알 수 있었다.
최종답안
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));
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);
}
}
'알고리즘, 코딩테스트 > (JAVA)백준' 카테고리의 다른 글
(JAVA) 백준 1193 분수찾기 (0) | 2021.07.06 |
---|---|
(JAVA) 백준 2798 블랙잭 (0) | 2021.06.24 |
(JAVA) 백준 10870 피보나치 수 5 (0) | 2021.06.13 |
(JAVA) 백준 10250 ACM 호텔 (0) | 2021.06.13 |
(JAVA) 백준 10872 팩토리얼 (0) | 2021.06.12 |
Comments