C_C++

C++ - 백준 9501 꿍의 우주여행

ncode 2025. 1. 30. 18:42
728x90
반응형
/* 백준 9501 꿍의 우주여행

* 문제

꿍은 우주여행을 하고 싶어져서 우주여행을 계획하기 시작했다. 몇 가지를 고려해본 결과
우주여행에는 우주선의 연료와 목적지까지의 도착시간이 가장 큰 영향을 미치는것으로 파악됐다.
꿍은 엄청난 부자여서 우주선이 여러대가 있는데 각각의 우주선마다 최고속도와 연료소비율이
조금씩 다르다. 연료 소비율은 단위시간당 소비하는 연료의 양이다.

모든 우주선이 최고속도에 즉시 도달한다고 할 때 꿍이 가고싶어하는 곳까지 여행할 수 있는
우주선은 총 몇대인지 여러분이 대신 구해줘라.

* 입력

입력은 테스트케이스의 개수 T (1 ≤ T ≤ 50)로 시작한다.

각 테스트케이스는 공백으로 구분되는, 우주선의 개수 N (1 ≤ N ≤ 100)과 목적지 까지의
거리 D (1 ≤ D ≤ 106), 두 개의 정수로 시작한다. 다음 N줄에는 각각 공백으로 구분되는,
우주선의 최고속도 vi (1 ≤ vi ≤ 1000)와 우주선의 연료양 fi (1 ≤ fi ≤ 1000)와 우주선의
연료소비율 ci (1 ≤ ci ≤ 1000), 세개의 정수가 주어진다.

* 출력

각 테스트케이스에 대해 목적지까지 갈 수 있는 우주선의 개수를 구하여라.

이때, 정수의 나눗셈에 조심하라!

* 예제 입력 1

2
3 100
52 75 10
88 13 44
56 9 5
2 920368
950 950 1
943 976 1

* 예제 출력 1

2
1

*/

/* 풀이

    거리 = 속력 * 시간
    연료소모율 = 연료량 / 시간, 시간 = 연료량 / 연료소모율율
    거리 = 속력 * (연료량 / 연료소모율), d = v * (f / c), d * c = v * f

    출력 힌트에 "정수의 나눗셈에 조심하라!" 라는 부분은 나눗셈을 하지 않는 것으로
    해결한다. (v * f >= c * d)

*/

#include <iomanip>
#include <iostream>

using std::cin, std::cout;

int main() {
	int t;
	cin >> t;

	while (t-- > 0) {
		int n, d;
		cin >> n >> d;

		int count = 0;
		for (int i = 0; i < n; ++i) {
			int v, f, c;
			cin >> v >> f >> c;

			// 거리 = 속력 * 시간
			// 연료소모율 = 연료량 / 시간, 시간 = 연료량 / 연료소모율율
			// 거리 = 속력 * (연료량 / 연료소모율), d = v * (f / c), d * c = v * f
			if (v * f >= c * d) {
				++count;
			}
		}

		cout << count << '\n';
	}
}
728x90
반응형