본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 25285 : 심준의 병역판정검사

반응형

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

 

25285번: 심준의 병역판정검사

병역판정검사는 병역의무자들의 상태를 검사해 징병 여부와 징병 시 어느 방향으로 복무를 시키는 게 좋을지 판정하는 검사로, 남성들은 만 19세가 되는 해에 모두 병역판정검사를 받는다. 신체

www.acmicpc.net

간단 구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

test case 수 t, 키 cm, 몸무게 kg을 선언 후 입력받습니다.

📔 풀이과정

bmi 계산 후 신체 등급을 나눠 반환해주는 함수 getBodyClass를 사용합니다.

📔 정답출력

함수의 결과값을 출력합니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
double t, cm, kg, bmi;

int getBodyClass(){
    bmi = kg/pow(cm/100,2);
    if(cm < 140.1) return 6;
    if(140.1 <= cm && cm < 146) return 5;
    if(146 <= cm && cm < 159) return 4;
    if(159 <= cm && cm < 161){
        if(16 <= bmi && bmi < 35) return 3;
        return 4;
    }
    if(161 <= cm && cm < 204){
        if(20 <= bmi && bmi < 25) return 1;
        else if((18.5 <= bmi && bmi < 20) | (25 <= bmi && bmi < 30)) return 2;
        else if((16 <= bmi && bmi < 18.5) | (30 <= bmi && bmi < 35)) return 3;
        return 4;
    }
    return 4;
}

int main() {
    cin >> t;
    while(t--){
        cin >> cm >> kg;
        cout << getBodyClass() << '\n';
    }
}

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.