Archives
Recent Posts
«   2024/05   »
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 29 30 31
관리 메뉴

개발도생's Blog

[백준][Java] 14470_전자레인지 본문

BaekJoon

[백준][Java] 14470_전자레인지

개발도생 2022. 11. 29. 16:20

[백준] 14470_전자레인지 문제

 

14470번: 전자레인지

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

www.acmicpc.net


14470, 전자레인지 문제
조건


고기를 데우기 위해서 굉장히 복잡한 과정들이 필요한 거 같다.

 

고기의 온도를 높이기 위해서 세 가지 정도의 조건이 필요했다.

 

1) 고기가 얼어 있을 때는 0도까지 온도를 맞춰야 한다.

2) 얼어있던 고기가 0도가 되면 혹은 0도이면서 얼어 있던 고기를 해동 상태로 만들기 위해서는 1도가 필요하다.

- 문제에서는 얼어 있지 않은 상태가 되기 위해선 0도보다 높기만 하면 된다고 했기 때문이다.

3) 그 외 조건 크게 어렵지 않아 코드로 설명을 대신한다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * L4_14470
 */
public class Main {

    public static void main(String[] args) throws 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());
        int D = Integer.parseInt(br.readLine());
        int E = Integer.parseInt(br.readLine());

        int time = 0;		// 고기를 데우는 데 걸린 시간
        if(A < 0){		// 고기가 얼어 있다면,
            time = (A * -1) * C;	// 고기 온도를 0도까지 높이는 식
            A = 0;		// 고기 온도를 0도로 초기화
        } 
        
        if(A == 0){		
            time+=D;		// 0도인 고기를 녹아 있는 상태로 만들기 위한 식
        }

        if(A >= 0){			// 녹아 있는 고기인지 확인하는 식
            time += (B - A) * E;	// 애초에 녹아 있는 고기를 데우는 식
        }

        System.out.println(time);
    }
}

먼저 다섯개의 정수가 입력되고 저장될 변수를 선언해주었다.

 

사용자 입력값을 받아오기 위해 BufferedReader객체를 사용했다.

 

if문을 사용해 얼어 있는 고기인지 녹아 있는 고기인지를 판단해주었다.

 

그리고 문제에서 요구했던 조건 세 가지를 조건식으로 만들어 보았다.

 

조건 중에서 0도일 때 고기의 상태가 얼어 있을 수도 녹아 있을 수도 있다고 했으니 'A == 0'의 식이 필요한 것이다.

더보기

※ 산술적인 대입 연산자

    ▶ +=(덧셈 대입) | 사용법 : N += N1 | 풀이 : N = N + N 1


입력해야 되는 값
출력 값


위와 같은 코드로 제출했을 때,

맞았습니다!!

Comments