※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 3512번 문제인 Flat이다.
문제는 아래 링크를 확인하자.

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

 

3512번: Flat

You are one of the developers of software for a real estate agency. One of the functions you are to implement is calculating different kinds of statistics for flats the agency is selling. Each flat consists of different types of rooms: bedroom, bathroom, k

www.acmicpc.net

주어진 아파트의 전체 면적, 침실의 면적과 아파트의 가격을 주어진 수식을 이용해 계산하고 출력하는 문제이다.

 

가격의 계산 결과는 소수점 아래의 자리가 존재하지 않거나 ".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

+ Recent posts