[백준 BOJ] 29986번 Amusement Park Adventure (C++/cpp)

2026. 1. 11. 16:39PS (Program Solving)/BOJ (백준)

문제 설명

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

 

백준 BOJ 29986번 Amusement Park Adventure 문제 사진1
백준 BOJ 29986번 Amusement Park Adventure 문제 사진2

 

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

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

해당 문제는, 입력으로 주어지는 사람의 키와 놀이기구들의 키 제한을 고려하여 이 사람이 탈 수 있는 놀이기구의 총개수를 구하여 정답으로 출력하면 되는 문제이다.

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

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

 

이 문제는, 값 크기 비교를 통하여 비교적 쉽게 해결할 수 있는 문제이다.

필자는, 각 놀이기구의 키 제한을 하나씩 입력받을 때마다 특정 사람의 키 값과 비교해 가면서 정답을 구해나가도록 하였다.

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

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

 

코드의 실행 순서

1) 놀이기구의 수(n)와 특정 사람의 키(k)를 입력받는다.

 

2) 해당 사람이 탈 수 있는 놀이기구의 총개수를 저장할 변수 sum을 0으로 초기화하여 선언해 둔다.

 

3) n의 크기만큼, 반복문을 수행하여 아래의 연산을 취한다.

- 각 놀이기구의 키 제한(num)을 하나씩 입력받는다.

- 해당 사람이 이 놀이기구를 탈 수 있는지를 확인하기 위해 값 비교를 수행한다.

만약 k값이 현재의 num값 이상인 값을 가진다면, 이 놀이기구는 탈 수 있음을 의미한다. 따라서 이 경우에는 sum에 1을 더해주도록 한다.

 

4) 3)에 대한 연산이 완료되었다면, 최종적으로 저장된 sum값을 정답으로 출력한 뒤, 실행 종료한다.

반응형

 

성공한 코드

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

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

    int n, k;
    cin >> n >> k;

    int sum = 0;
    for (int i = 0; i < n; i++) {
        int num;
        cin >> num;
        if (num <= k) { sum++; }
    }
    cout << sum << endl;
}

 

제출 결과

백준 BOJ 29986번 Amusement Park Adventure 문제 C++ 제출 결과

(2024.11.14 백준 29986번 문제 제출 결과)