[백준 BOJ] 30793번 gahui and sousenkyo 3 (C++/cpp)

2026. 1. 18. 00:33PS (Program Solving)/BOJ (백준)

문제 설명

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

 

백준 BOJ 30793번 gahui and sousenkyo 3 문제 사진1
백준 BOJ 30793번 gahui and sousenkyo 3 문제 사진2

 

접근 방법 - 기초적인 값 비교 연산 문제

백준의 30793번 문제는 값 비교 연산을 활용하여 간단하게 해결할 수 있는 문제이다.

해당 문제는, 입력으로 주어지는 2가지의 투표 결과에 대하여 해당 캐릭터의 유형을 형식에 맞추어 정답으로 출력하면 되는 문제이다.

문제 상에서 제시하는 유형의 판별 기준 및 유형의 종류는 아래와 같다.

  • 예비 결과를 최종 결과로 나눈 값을 기준으로, 캐릭터의 유형을 결정짓는다.
  • 위 값이 0.2 미만인 값을 가진다면, 이는 weak 유형이다.
  • 위 값이 0.2 이상이며 0.4 미만인 값을 가진다면, 이는 normal 유형이다.
  • 위 값이 0.4 이상이며 0.6 미만인 값을 가진다면, 이는 strong 유형이다.
  • 위 값이 0.6 이상인 값을 가진다면, 이는 very strong 유형이다.

외국어로 작성된 문제 지문에 대한 해석 설명본은 아래 링크에 있으니, 문제 해결할 시 함께 참고하면 좋을 것이다.

https://www.acmicpc.net/board/view/164003

 

이 문제는, 사칙연산 및 값 크기 비교를 적절히 활용하여 비교적 쉽게 해결할 수 있는 문제이다.

필자는, 문제에 제시된 설명대로 기준점이 되는 값을 구한 뒤 이를 적절히 비교해 가며 정답인 유형을 찾아 출력하는 식으로 코드를 적어나갔다.

더 설명할 건 없어 보이긴 하다만보다 자세한 설명은 아래에 기재해 놓으니, 혹여나 해당 문제를 해결하는 데에 어려움을 겪고 있다면 아래의 설명과 코드를 참고해 보길 바란다.

필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 예비 결과(p)와 최종 결과(r) 값을 순차적으로 입력받는다.

 

2) 유형을 판별하기 위하여, p를 r로 나눈 값을 임의의 변수 v에 저장하도록 한다.

(이때, 유형을 판별할 때 실수 값들과 서로 값을 비교해 나갈 예정이기 때문에 v 또한 실수형 변수로 사용하였다.)

 

3) v의 값에 따라서, 그에 맞는 유형을 찾아 출력하도록 한다.

- 0.2 미만의 값이라면, "weak" 유형이라 볼 수 있다.

- 0.2 이상이며 0.4 미만의 값이라면, "normal" 유형이라 볼 수 있다.

- 0.4 이상이며 0.6 미만의 값이라면, "strong" 유형이라 볼 수 있다.

- 위 조건을 모두 만족하지 않는 값이라면, "very strong" 유형이라 볼 수 있다.

 

4) 정답을 알맞게 출력하였다면, 실행을 종료한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#define endl '\n'
using namespace std;

//백준 30793번 코드
int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);   cout.tie(NULL);

    double p, r;
    cin >> p >> r;

    double v = p / r;
    if (v < 0.2) {
        cout << "weak" << endl;
    }
    else if (0.2 <= v && v < 0.4) {
        cout << "normal" << endl;
    }
    else if (0.4 <= v && v < 0.6) {
        cout << "strong" << endl;
    }
    else {
        cout << "very strong" << endl;
    }
}

 

제출 결과

백준 BOJ 30793번 gahui and sousenkyo 3 문제 C++ 제출 결과

(2024.12.26 백준 30793번 문제 제출 결과)