알고리즘 문제풀이/백준

#2869 : 달팽이는 올라가고 싶다

모항 2022. 5. 1. 16:29

풀이방법

사용된 것:

수학

 

2022.05.01

딱 한 문장짜리 식으로 답을 구해야 하는 문제이다.

반복문이나 조건문 같은 것을 쓰면 높은 확률로 시간초과가 발생한다.

 

2022.04.27

2023년 2월 6일에 시간초과 기준이 바뀌어, 조건문을 사용해도 시간초과가 발생하지 않게 되었다.

그래서, 2022년 4월 27일에 제출했다가 시간초과를 받았으나 재채점 후 정답 처리가 된 조건문 코드를 하단에 정답 코드로 추가하였다.

반복문을 사용한 코드는 여전히 시간초과를 받는다.

 

코드

Java(2022.05.01)

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{
		// TODO Auto-generated method stub
		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 ans = (int)(Math.ceil((double)(v-a)/(a-b)) +1);
		//답 출력하기
		System.out.print(ans);

	}

}

 

Java(2022.04.27) 조건문을 사용

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
		int v = sc.nextInt();
		
		//마지막 날을 제외한 날에 달팽이가 올라가는 거리
		int sub = a - b;
		
		if((v-a)%sub == 0) System.out.print((v-a)/sub +1);
		else System.out.print((v-a)/sub +2);
		
		sc.close();
	}

}

'알고리즘 문제풀이 > 백준' 카테고리의 다른 글

#7568 : 덩치  (0) 2022.05.03
#1193 : 분수찾기  (0) 2022.05.01
#13335 : 트럭  (0) 2022.04.30
#2605 : 줄 세우기  (0) 2022.04.30
#4949 : 균형잡힌 세상  (0) 2022.04.29