[백준 BOJ] 2965번 캥거루 세마리 (C++/cpp)
2025. 12. 29. 16:14ㆍPS (Program Solving)/BOJ (백준)
문제 설명
https://www.acmicpc.net/problem/2965

접근 방법 - 기초적인 사칙연산 문제
백준의 2965번 문제는 문제 지문에 대하여 사칙연산을 통해 해결할 수 있는 문제이다.
해당 문제는, 서로 다른 캥거루 3마리의 좌표가 입력으로 주어질 때 캥거루들이 최대로 움직일 수 있는 횟수를 구하여 출력하면 되는 문제이다.
이때, 바깥쪽에 있는 두 캥거루 중 하나가 다른 캥거루 사이의 좌표로 점프하여 움직인다는 규칙이 있으니 꼭 참고해야 한다.
필자는 문제 지문을 읽은 뒤, 다음과 같이 구상하고 이를 기반으로 로직을 작성해 보았다.

필자는 위처럼 입출력 예제 2번을 예시로 들어 로직을 그림으로 그려보았다.
이때 그림을 자세히 살펴보면, 초기 상태에서의 가장 넓은 간격 사이로 캥거루들이 교차로 들어가는 현상을 확인해 볼 수 있다.
이를 통하여, "캥거루 간 간격이 가장 넓은 값을 활용하여 정답을 구할 수 있다"는 점을 알 수 있다.
필자는 캥거루가 다른 캥거루들 사이로 점프한다는 점을 감안하여, (캥거루 간 간격이 가장 넓은 값)-1의 값으로 정답을 출력하도록 하였다.
해당 문제에 대한 해설로는 위 설명이 충분한 것으로 판단되어, 더 구체적인 설명은 생략하고자 한다.
혹여나 해당 문제를 해결하는 데에 어려움을 겪고 있다면, 아래의 코드를 참고해 보길 바란다.
필자는 아래처럼 코드를 작성하여 문제를 해결하였다.
반응형
성공한 코드
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#define endl '\n'
using namespace std;
//백준 2965번 코드
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int a, b, c;
cin >> a >> b >> c;
int sum = b - a > c - b ? (b - a - 1) : (c - b - 1);
cout << sum << endl;
}
제출 결과

(2024.02.18 백준 2965번 문제 제출 결과)
'PS (Program Solving) > BOJ (백준)' 카테고리의 다른 글
| [백준 BOJ] 2740번 행렬 곱셈 (C++/cpp) (0) | 2026.01.08 |
|---|---|
| [백준 BOJ] 11497번 통나무 건너뛰기 (C++/cpp) (0) | 2026.01.04 |
| [백준 BOJ] 2372번 Livestock Count (Ada) (0) | 2025.12.22 |
| [백준 BOJ] 30404번 오리와 박수치는 춘배 (C++/cpp) (0) | 2025.12.20 |
| [백준 BOJ] 20332번 Divvying Up (C++/cpp) (0) | 2025.12.18 |