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

 

이번에 볼 문제는 백준 13519번 문제인 Isn’t It Funny How a Bear Likes Honey?이다.
문제는 아래 링크를 확인하자.

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

 

5163번: Isn’t It Funny How a Bear Likes Honey?

For each data set, output “Data Set x:” on a line by itself, where x is its number. On the next line, output “Yes” or “No”, depending on whether the balloons together will be able to lift Pooh. Each data set should be followed by a blank line.

www.acmicpc.net

문제에서 헬륨풍선이 들 수 있는 무게와 푸의 무게 사이의 오차가 충분히 크다는 것을 보장하고 있으므로, 수식을 이용하여 단순히 계산하는 것으로 문제를 해결할 수 있다.

 

원주율은 cmath헤더에 있는 acos(arccosine) 함수를 이용하여 편하게 계산할 수 있다.

 

단위에 유의하여 구현하자. 주어지는 풍선의 반지름을 10cm단위로 잡는다면 1L = (10cm)^3당 1g의 무게를 들어올릴 수 있으므로 구현을 편하게 할 수 있다.

 

출력형식에 유의하자. "Data Set x:"가 한 줄, "Yes" 또는 "No"가 한 줄, 그리고 테스트케이스 사이에 빈 줄 한 줄을 출력해야 한다.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <cmath>
using namespace std;

double pi = acos(-1);

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int T; cin >> T;
	for (int t = 1; t <= T; t++) {
		int b; double w; cin >> b >> w;
		double total = 0;
		while (b--) {
			double r; cin >> r;
			r /= 10;
			total += pi * r * r * r * 4 / 3;
		}
		cout << "Data Set " << t << ":\n";
		if (total > w) cout << "Yes\n";
		else cout << "No\n";
		if (t < T) cout << '\n';
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 2304 // C++] 창고 다각형  (0) 2022.07.31
[BOJ 1254 // C++] 팰린드롬 만들기  (0) 2022.07.31
[BOJ 5959 // C++] Crop Circles  (0) 2022.07.31
[BOJ 1658 // C++] 돼지 잡기  (0) 2022.07.30
[BOJ 11495 // C++] 격자 0 만들기  (0) 2022.07.29

+ Recent posts