코딩 문제풀이/백준

백준 14470. 전자레인지

배3 2025. 6. 22. 22:30

 

[문제]

유형: 수학/구현/사칙연산/시뮬레이션

언어: C++

난이도: 브4

사이트: https://www.acmicpc.net/problem/14470


[리뷰]

쟁점: 녹는점 해동시간

문제 설명이 길어서 그렇지, 이해만 한다면 어렵지 않은 문제였다.

온도에 따라 가열 시간이 바뀌는 조건만 알면 쉽다.

 

1. 영하 → 0도: C초/

2. 0도 → 0도: D초/ 

3. 0도 → 영상: E초/ 

 

2번 조건인 해동시간이 이 문제의 쟁점이다. 녹는점이라고 생각하면 쉽다.

 

학습 내용.

C++에선 오버로딩이란 개념이 존재한다.

오버로딩이란, 입력이나 출력 인자가 다르면 내부적인 동작이 다르더라도 함수명을 동일하게 만들 수 있다.

따라서 정수형과 실수형 함수 abs가 각각 존재한다.

C++에서 int 타입의 절댓값 함수 abs( )를 사용하려면 <cstdlib> 라이브러리 필요.

float, double 타입의 abs( ) 함수는 <cmath> 라이브러리에 있다.

요약하면,

정수형) C : <stdlib.h> abs( ) → C++ : <cstdlib> abs( )

실수형) C : <math.h> abs( ) → C++ : <cmath> abs( )

 

 

해답.

A가 음수면, (-1) * A * C + D + B * E
A가 양수면, (B-A) * E

 

[코드]

// p14470. 전자레인지
#pragma warning(disable : 4996)
#include <iostream>
#include <cstdlib>

using namespace std;

int main(void)
{
	int A, B, C, D, E;
	int ans = 0;
	cin >> A >> B >> C >> D >> E;
	if (A < 0)
	{
		ans = abs(A) * C + D;
		A = 0;
	}
	ans += (B - A) * E;
	
	cout << ans;

	return 0;
}

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

백준 1531. 투명  (0) 2025.06.23
백준 8320. 직사각형을 만드는 방법  (0) 2025.06.23
백준 2851. 슈퍼마리오  (0) 2025.06.23