※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 3512번 문제인 Flat이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/3512
주어진 아파트의 전체 면적, 침실의 면적과 아파트의 가격을 주어진 수식을 이용해 계산하고 출력하는 문제이다.
가격의 계산 결과는 소수점 아래의 자리가 존재하지 않거나 ".5"로 끝나는 경우 두 종류 뿐이므로, 부동소수점을 이용한 계산을 피하고 직접 소수점 아래를 출력하는 방식으로 오차없이 문제를 해결할 수 있다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
using namespace std;
int N, C;
int bedroom, total, reduced2;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout << fixed;
cout.precision(10);
cin >> N >> C;
while (N--) {
int x; string s; cin >> x >> s;
total += x;
if (s == "bedroom") bedroom += x;
if (s == "balcony") reduced2 += x;
else reduced2 += 2 * x;
}
cout << total << '\n' << bedroom << '\n';
reduced2 *= C;
if (reduced2 & 1) cout << reduced2 / 2 << ".5";
else cout << reduced2 / 2;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 25773 // C++] Number Maximization (0) | 2022.11.13 |
---|---|
[BOJ 7582 // C++] On the Bus (0) | 2022.11.13 |
[BOJ 16099 // C++] Larger Sport Facility (1) | 2022.11.12 |
[BOJ 3085 // C++] 사탕 게임 (0) | 2022.11.12 |
[BOJ 24623 // C++] Изгороди (0) | 2022.11.12 |