[문제]
유형: 수학/구현/사칙연산/시뮬레이션
언어: 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 |