※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 25285번 문제인 심준의 병역판정검사이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/25285
25285번: 심준의 병역판정검사
병역판정검사는 병역의무자들의 상태를 검사해 징병 여부와 징병 시 어느 방향으로 복무를 시키는 게 좋을지 판정하는 검사로, 남성들은 만 19세가 되는 해에 모두 병역판정검사를 받는다. 신체
www.acmicpc.net
주어지는 키와 체중을 이용해 문제에 주어진 표대로 병역판정결과를 출력하는 문제이다.
입력으로 주어지는 키는 cm 단위이지만 BMI 계산에 들어가는 키의 단위는 m임에 유의하자.
실수 계산의 부동소수점 오차가 걱정이 된다면 주어진 식을 적절히 변형하여 실수 자료형 없이 정수계산만으로 문제를 해결하자. 아래의 코드를 참고하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
void solve() {
int h, w; cin >> h >> w;
if (h < 141) cout << 6 << '\n';
else if (h < 146) cout << 5 << '\n';
else if (h < 159) cout << 4 << '\n';
else if (h < 161) {
if (10000 * w >= 35 * h * h || 10000 * w < 16 * h * h) cout << 4 << '\n';
else cout << 3 << '\n';
}
else if (h < 204) {
if (10000 * w >= 35 * h * h || 10000 * w < 16 * h * h) cout << 4 << '\n';
else if (10000 * w >= 30 * h * h || 100000 * w < 185 * h * h) cout << 3 << '\n';
else if (10000 * w >= 25 * h * h || 10000 * w < 20 * h * h) cout << 2 << '\n';
else cout << 1 << '\n';
}
else cout << 4 << '\n';
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int T; cin >> T;
while (T--) solve();
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 21964 // C++] 선린인터넷고등학교 교가 (0) | 2022.09.18 |
---|---|
[BOJ 25289 // C++] 가장 긴 등차 부분 수열 (0) | 2022.09.17 |
[BOJ 25286 // C++] 11월 11일 (0) | 2022.09.15 |
[BOJ 25288 // C++] 영어 시험 (0) | 2022.09.14 |
[BOJ 6131 // C++] 완전 제곱수 (0) | 2022.09.13 |