[백준 BOJ] 15726번 이칙연산 (C++/cpp)

2023. 10. 22. 16:16PS (Program Solving)/BOJ (백준)

문제 설명

https://www.acmicpc.net/problem/15726

 

15726번: 이칙연산

첫째 줄에 세 개 정수 A, B, C(1 ≤ A, B, C ≤ 1,000,000)가 주어진다. 답은 int범위를 벗어나지 않는다.

www.acmicpc.net

백준 BOJ 15726번 이칙연산 문제 사진

 

접근 방법 - 최댓값 연산의 기초 알고리즘 문제

백준의 15726번 문제는 값을 비교하여 최댓값을 구하는 기초적인 알고리즘 문제이다.

해당 문제는, 입력값으로 주어지는 3개의 값에 대해 한 번의 곱셈과 한 번의 나눗셈을 수행할 때 나타날 수 있는 최댓값을 구하여 출력하면 되는 문제이다.

필자는, 2개 경우에 대한 연산을 모두 수행해 본 뒤 그들 중 큰 값을 출력하게끔 코드를 구성하였다.

해당 문제와 같은 경우엔, 나눗셈을 먼저 수행하는지 or 곱셈을 먼저 수행하는지의 2가지 경우로만 나타나기 때문에 간단하게 구현할 수 있었다.

혹시나 해당 문제를 해결하는 데에 어려움을 겪고 있다면, 아래의 코드와 설명을 참고해 보길 바란다.

필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 3개의 숫자(a, b, c)를 순차적으로 입력받는다.

(이때 나눗셈을 / 연산자로 수행해야 하기 때문에, 정밀한 연산을 위해 3개 모두 실수형인 double형으로 입력하도록 한다.)

 

2) 변수 max를 선언하여, 2개 경우 중 큰 값을 max에 저장하도록 한다.

(a/b*c 또는 a*b/c, 이렇게 2가지 방법으로 경우가 나뉠 것이다.)

(이때, 문제 상에서 정답은 int 범위를 벗어나지 않는다고 하였기 때문에 max는 int형으로 선언하도록 한다.)

 

3) 최종적으로 저장된 max의 값을 출력한 뒤, 실행 종료한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#define endl '\n'
using namespace std;

//백준 15726번 코드
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);	cout.tie(NULL);

	double a, b, c;
	cin >> a >> b >> c;

	int max = a / b * c > a * b / c ? a / b * c : a * b / c;
	cout << max << endl;
}

 

제출 결과

백준 BOJ 15726번 이칙연산 문제 C++ 제출 결과

(2022.10.09 백준 15726번 문제 제출 결과)

반응형