[백준 BOJ] 25625번 샤틀버스 (C++/cpp)
2023. 5. 28. 16:53ㆍPS (Program Solving)/BOJ (백준)
문제 설명
https://www.acmicpc.net/problem/25625
25625번: 샤틀버스
3년만에 열리는 대면 SNUPC를 위해서, 민준이는 제2공학관으로 가고자 한다! 제2공학관에 가는 버스는 여러 가지가 있다. 관악02, 5511, 5513, 5516... 어떤 버스를 타더라도 단점이 있는데, 그것은 바로
www.acmicpc.net
접근 방법 - 간단한 사칙연산 문제
백준의 25625번 문제는 간단한 사칙연산을 응용하여 해결할 수 있는 문제이다.
해당 문제는, 2개의 입력값을 통하여 민준이 버스에 탑승할 수 있는 최소 시간을 연산하여 출력해야 하는 문제이다.
여기서 입력값으로는, 입구-공학관 간의 편도 소요시간(x)과 버스가 공학관에 도착하는 시간(y)으로 주어져있다.
필자는 x와 y의 크기를 비교하며 아래와 같이 연산을 수행하면 해결되는 문제라 생각하였다.
- x가 y보다 큰 경우는, 현재 버스가 입구->공학관으로 이동하고 있는 상황임을 의미한다.
버스가 한 바퀴를 돌고 나서 민준이 입구에서 탑승할 수 있는 상황이기 때문에, 이때에는 x+y를 출력한다.
- x가 y보다 작은 경우는, 현재 공학관->입구로 이동하고 있는 상황임을 의미한다.
버스가 현재 입구로 향하고 있고 입구에 도착할 때 민준이 탑승하면 되기 때문에, 이때에는 y-x를 출력한다.
(이때 x와 y가 같은 경우는 현재 버스가 입구에 도착해 있는 상황을 의미하기 때문에, 최소 시간을 출력하기 위해 y-x의 결과인 0을 출력하도록 하였다.)
이 해설에 따라 코드를 그대로 구성하였기 때문에, 상세한 설명은 생략하였다.
필자는 아래처럼 코드를 작성하여 문제를 해결하였다.
성공한 코드
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#define endl '\n'
using namespace std;
//백준 25625번 코드
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int x, y;
cin >> x >> y;
if (x > y) {
cout << x + y << endl;
}
else {
cout << y - x << endl;
}
}
제출 결과
(2023.05.12 백준 25625번 문제 제출 결과)
반응형
'PS (Program Solving) > BOJ (백준)' 카테고리의 다른 글
[백준 BOJ] 16727번 ICPC (C++/cpp) (0) | 2023.08.31 |
---|---|
[백준 BOJ] 23841번 데칼코마니 (C++/cpp) (0) | 2023.07.16 |
[백준 BOJ] 26004번 HI-ARC (C++/cpp) (0) | 2023.04.02 |
[백준 BOJ] 27866번 문자와 문자열 (C++/cpp) (0) | 2023.03.23 |
[백준 BOJ] 10156번 과자 (C++/cpp) (0) | 2023.03.06 |