[문제] https://www.acmicpc.net/problem/19572
19572번: 가뭄(Small)
3개의 양의 정수가 입력으로 들어온다. 각각은 d1, d2, d3을 의미한다. (1 ≤ d1, d2, d3 ≤ 106)
www.acmicpc.net
[풀이]
✨주요 포인트
-수학 문제다. 미지수 3개짜리 방정식으로 접근해서 식을 구성하면 풀린다.
✨알고리즘
1. a, b, c를 입력받는다.
2. 방정식을 풀어준다.
3. 방정식을 풀었을 때, a/b/c 중에 하나라도 음수가 나온다면 이는 불가능한 케이스라는 뜻이다. '-1'를 출력하고 끝낸다.
4. 아니라면, '1'을 출력하고 a/b/c를 출력한다.
(전체 코드)
#include <iostream>
using namespace std;
int main() {
cin.tie(0); cout.tie(0);
ios::sync_with_stdio(false);
float d[3];
float a = 0, b = 0, c = 0;
for (int i = 0; i < 3; i++)
cin >> d[i];
b = (d[0] - d[1] + d[2]) / 2;
c = d[2] - b;
a = d[0] - b;
if (a <= 0 || b <= 0 || c <= 0)
cout << "-1";
else {
cout << "1" << "\n";
//소수점 하나만 출력
cout << fixed;
cout.precision(1);
cout << a << ' ' << b << ' ' << c;
}
}
[백준] 19576번 약수 (c++) (0) | 2021.08.19 |
---|---|
[백준] 1449번 수리공 항승 (c++) (0) | 2021.07.10 |
[백준] 1157번 단어 공부 (c++) (0) | 2021.07.07 |
[백준] 4673번 셀프 넘버 (c++) (0) | 2021.07.05 |
[백준] 1712번 손익분기점 (c++) (0) | 2021.07.05 |
댓글 영역