2026. 1. 23. 17:36ㆍPS (Program Solving)/BOJ (백준)
문제 설명
https://www.acmicpc.net/problem/32776

접근 방법 - 기초적인 사칙연산 및 값 비교 연산문제
백준의 32776번 문제는 사칙연산 및 값 비교를 활용하여 비교적 간단하게 해결할 수 있는 문제이다.
해당 문제는, 역 a에서 역 b까지 이동하는 데에 고속철도와 항공편 중 어느 것을 이용하는 게 더 좋을지를 확인하여 정답으로 출력하면 되는 문제이다.
여기서, 이동수단을 선택할 때 아래의 조건을 따져야 하니 함께 확인해 보길 바란다.
- 고속철도를 이용할 경우에는, 역 a에서 역 b로 바로 갈 수 있다.
- 항공편을 이용할 경우에는, 역 a -> 공항 a -> 공항 b -> 역 b를 거쳐서 갈 수 있다.
- 사람들은 고속철도를 더 좋아하기 때문에, 고속철도를 이용할 경우 4시간 이하로 갈 수 있다면 고속철도를 이용한다.
- 고속철도를 이용할 때 4시간 이상 걸린다면, 둘 중 더 빨리 갈 수 있는 이동수단을 이용한다. (소요시간이 같다면 고속철도를 이용한다.)
필자는 위 문제의 설명에 따라, 고속철도를 이용했을 경우의 소요시간이 4시간보다 적은지를 먼저 판별해 보았다.
만일 그렇지 않은 경우에는 각 이동수단을 활용했을 때의 소요시간을 구하고 이 둘을 비교하여 정답을 구하게끔 코드를 작성하였다.
보다 더 자세한 설명은 아래에 기재해 놓으니, 혹여나 해당 문제를 해결하는 데에 어려움을 겪고 있다면 아래의 설명과 코드를 참고해 보길 바란다.
필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.
코드의 실행 순서
1) 고속철도를 이용할 경우의 소요 시간(sr)과 항공편을 이용할 경우의 각 구역에서의 소요 시간(a, b, c)을 순차적으로 입력받는다.
2) 고속철도를 이용할 때와 항공편을 이용할 때의 소요시간을 비교하도록 한다.
(고속철도의 경우는 sr값이 되며, 항공편의 경우는 각 구역에서의 소요시간을 모두 합한 a+b+c값이 된다.)
- sr 값이 4시간(240분)보다 작거나 a+b+c 값보다 작거나 같다면, 이 경우는 고속철도를 이용한다고 볼 수 있다. 따라서 이때엔, "high speed rail"을 정답으로 출력한다.
- 다만 위 조건을 만족하지 않는다면, 이 경우는 항공편을 이용한다고 볼 수 있다. 따라서 이때엔, "flight"를 정답으로 출력한다.
3) 2)에서 적절한 정답을 출력하였다면, 실행을 종료한다.
성공한 코드
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#define endl '\n'
using namespace std;
//백준 32776번 코드
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int sr, a, b, c;
cin >> sr >> a >> b >> c;
if (sr <= 240 || sr <= a + b + c) {
cout << "high speed rail" << endl;
}
else {
cout << "flight" << endl;
}
}
제출 결과

(2025.03.09 백준 32776번 문제 제출 결과)
새벽에 급하게 푼다고 엄청 틀렸네ㄷㄷ
'PS (Program Solving) > BOJ (백준)' 카테고리의 다른 글
| [백준 BOJ] 28214번 크림빵 (C++/cpp) (0) | 2026.01.23 |
|---|---|
| [백준 BOJ] 30793번 gahui and sousenkyo 3 (C++/cpp) (0) | 2026.01.18 |
| [백준 BOJ] 14402번 야근 (C++/cpp) (0) | 2026.01.12 |
| [백준 BOJ] 29986번 Amusement Park Adventure (C++/cpp) (0) | 2026.01.11 |
| [백준 BOJ] 1755번 숫자놀이 (C++/cpp) (0) | 2026.01.09 |