반응형
츄르사려고 코딩하는 코집사입니다.
1. [백준 알고리즘] 백준 14470번 전자레인지 자바(JAVA)
1) 문제번호 : 14470번
2) 문제 출처
https://www.acmicpc.net/problem/14470
2. 문제
JOI 군은 식사 준비를 위해 A℃의 고기를 전자레인지로 B℃까지 데우려고 한다. 고기는 온도가 0℃보다 낮을 때 얼어 있고, 0℃보다 높을 때는 얼어 있지 않다. 온도가 정확히 0℃일 때 고기는 얼어 있을 수도, 얼어 있지 않을 수도 있다.
JOI 군은 가열할 때 고기가 아래의 규칙을 따라 데워진다고 가정하고, 고기를 데우는 데 걸리는 시간을 어림하기로 했다.
- 고기가 얼어 있고 온도가 0℃ 미만일 때 : 온도가 C초에 1℃씩 오른다.
- 고기가 얼어 있고 온도가 정확히 0℃일 때 : 얼어 있지 않은 상태로 만드는(해동하는) 데 D초가 걸린다.
- 고기가 얼어 있지 않을 때 : 온도가 E초에 1℃씩 오른다.
이 규칙을 토대로, 고기가 B℃까지 데워지는 데 몇 초가 걸리는지 구하라.
3. 제약사항
4. 입력
입력은 총 5줄로, 한 줄에 한 개씩의 정수가 주어진다.
- 첫 줄에는 원래의 고기의 온도 A가 주어진다. 단, A는 -100 이상 100 이하이며, 0이 아니다.
- 둘째 줄에는 목표 온도 B가 주어진다. 단, B는 1 이상 100 이하이며, A보다 크다.
- 셋째 줄에는 얼어 있는 고기를 1℃ 데우는 데 걸리는 시간 C가 주어진다.
- 넷째 줄에는 얼어 있는 고기를 해동하는 데 걸리는 시간 D가 주어진다.
- 다섯째 줄에는 얼어 있지 않은 고기를 1℃ 데우는 데 걸리는 시간 E가 주어진다.
C, D, E는 모두 1 이상 100 이하이다.
5. 출력
고기를 B℃로 데우는 데 걸리는 시간을 초 단위로 한 줄에 출력하라.
6. 풀이
- 맨 처음 시작이 영하인지 영상인지를 구분해서, 영하면 시작 온도의 절대값에 얼어 있는 고기를 1도 데우는 데 걸리는 시간을 곱해주고, 시작온도를 0으로 둔다.
- 시작 온도가 0도면 해동하는 시간을 sec에 더해 준다.
- 그리고 나서, 목표 온도에서 시작 온도를 뺀 값에 얼어 있지 않는 고기를 1도 데우는 데 걸리는 시간을 곱해서 출력하면 된다.
7. 소스 코드
import java.io.*;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int A = Integer.parseInt(br.readLine()); // 원래의 고기 온도
int B = Integer.parseInt(br.readLine()); // 목표 온도
int C = Integer.parseInt(br.readLine()); // 얼어 있는 고기를 1도 데우는 데 걸리는 시간
int D = Integer.parseInt(br.readLine()); // 얼어 있는 고기를 해동하는데 걸리는 시간
int E = Integer.parseInt(br.readLine()); // 얼어 있지 않는 고기를 1도 데우는 데 걸리는 시간
System.out.println(work(A, B, C, D, E));
}
private static int work(int start, int end, int C, int D, int E) {
int sec = 0; // 초
//1. 시작 온도 기준에 따라 로직 계산
if(start < 0) {
sec += (Math.abs(start) * C);
start = 0;
}
//2. 시작 온도가 0도면 해동하기
if(start == 0) sec += D;
//3. 목표 온도에서 시작 온도를 빼서 그 값만큼 시간 곱하자.
sec += ((end-start) * E);
return sec;
}
}
반응형
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 백준 5073번 삼각형과 세 변 자바(JAVA) (0) | 2022.03.27 |
---|---|
[백준 알고리즘] 백준 6131번 완전 제곱수 자바(JAVA) (0) | 2022.03.24 |
[백준 알고리즘] 백준 16431번 베시와 데이지 자바(JAVA) (0) | 2022.03.23 |
[백준 알고리즘] 백준 14924번 폰 노이만과 파리 자바(JAVA) (0) | 2022.03.22 |
[백준 알고리즘] 백준 24262번 알고리즘 수업 - 알고리즘의 수행 시간 1 자바(JAVA) (1) | 2022.03.22 |
[백준 알고리즘] 백준 2997번 네 번째 수 파이썬(Python) (0) | 2022.03.15 |
[백준 알고리즘] 백준 1076번 저항 파이썬(Python) (0) | 2022.03.13 |
[백준 알고리즘] 백준 15726번 이칙연산 파이썬(Python) (0) | 2022.02.17 |
최근댓글