본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 7598 : Bookings

반응형

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

 

7598번: Bookings

Air NZ (not to be confused with Air New Zealand) operate flights between various smaller cities in New Zealand. They have a number of Aerospatiale ATR72 aircraft, each with 68 seats. Their policy is that passengers must book for a particular flight, and if

www.acmicpc.net

구현문제였습니다.

📕 풀이방법

📔 입력 및 초기화

 1. 비행기 번호 flightNum, 예약한 인원 booked를 선언 후 while loop를 돌며 입력 받습니다.

 2. 안에서 다시 while loop를 수행합니다. transaction의 상태 stat, 숫자 num을 선언 후 입력받습니다.

📔 풀이과정

예약했을 때 68이 넘어가거나 취소했을 때 인원이 0미만이라면 이 예약은 반영되지 않고 무시됩니다. 이 외에는 취소, 예약한 인원에 대해 booked값을 갱신해줍니다.

📔 정답출력

flightNum, booked를 공백으로 구분해 출력합니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
string flightNum;
int booked;
int main(){
    while(1){
        cin >> flightNum >> booked;
        if(flightNum == "#" && !booked) break;
        while(1){
            char stat;
            int num;
            cin >> stat >> num;
            if(stat == 'X' && !num) break;
            if(stat == 'B') {
                if(booked + num > 68) continue;
                booked += num;
            }
            if(stat == 'C') {
                if(booked - num < 0) continue;
                booked -= num;
            }
        }
        cout << flightNum << ' ' << booked << '\n';
    }
}