알고리즘 공부/백준 문제풀이

[백준] 14470 : 전자레인지(JAVA)

송테이토 2022. 10. 6. 20:27

백준 14470 자바

전자레인지

문제

JOI 군은 식사 준비를 위해 A℃의 고기를 전자레인지로 B℃까지 데우려고 한다. 고기는 온도가 0℃보다 낮을 때 얼어 있고, 0℃보다 높을 때는 얼어 있지 않다. 온도가 정확히 0℃일 때 고기는 얼어 있을 수도, 얼어 있지 않을 수도 있다.

JOI 군은 가열할 때 고기가 아래의 규칙을 따라 데워진다고 가정하고, 고기를 데우는 데 걸리는 시간을 어림하기로 했다.

  • 고기가 얼어 있고 온도가 0℃ 미만일 때 : 온도가 C초에 1℃씩 오른다.
  • 고기가 얼어 있고 온도가 정확히 0℃일 때 : 얼어 있지 않은 상태로 만드는(해동하는) 데 D초가 걸린다.
  • 고기가 얼어 있지 않을 때 : 온도가 E초에 1℃씩 오른다.

이 규칙을 토대로, 고기가 B℃까지 데워지는 데 몇 초가 걸리는지 구하라.

입력

입력은 총 5줄로, 한 줄에 한 개씩의 정수가 주어진다.

  • 첫 줄에는 원래의 고기의 온도 A가 주어진다. 단, A는 -100 이상 100 이하이며, 0이 아니다.
  • 둘째 줄에는 목표 온도 B가 주어진다. 단, B는 1 이상 100 이하이며, A보다 크다.
  • 셋째 줄에는 얼어 있는 고기를 1℃ 데우는 데 걸리는 시간 C가 주어진다.
  • 넷째 줄에는 얼어 있는 고기를 해동하는 데 걸리는 시간 D가 주어진다.
  • 다섯째 줄에는 얼어 있지 않은 고기를 1℃ 데우는 데 걸리는 시간 E가 주어진다.

C, D, E는 모두 1 이상 100 이하이다.

출력

고기를 B℃로 데우는 데 걸리는 시간을 초 단위로 한 줄에 출력하라.

예제 입력 1

-10
20
5
10
3

예제 출력 1

120

예제 입력 2

35
92
31
50
11

예제 출력 2

627

시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율

2 초 512 MB 3588 2730 2480 76.472%

코드

package Day0927;

import java.util.Scanner;

public class B14470 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt(); // 원래 고기 온도 A
		int B = sc.nextInt(); // 목표 온도 B
		int C = sc.nextInt(); // 얼어 있는 고기를 1℃ 데우는 데 걸리는 시간 C
		int D = sc.nextInt(); // 얼어 있는 고기를 해동하는 데 걸리는 시간 D
		int E = sc.nextInt(); // 얼어 있지 않은 고기를 1℃ 데우는 데 걸리는 시간 E
		sc.close();

		int sec = 0;

		if (A < 0) {
			sec = (A * C * -1) + (B * E) + D;
		} else {
			sec = (B - A) * E;
		}
		System.out.println(sec);
	}
}