관리 메뉴

cococo-coding

[C++] 1453번. 피시방 알바 본문

[BOJ] 코드 모음/C++_learning 문제집

[C++] 1453번. 피시방 알바

_dani 2024. 1. 15. 20:05

문제

풀이

자리배열 seat[101]={0,}을 생성하고, 손님이 원하는 자리를 입력받아 seat배열의 인덱스로 넣어 증가시켜주었다. seat[guest]++; 

만약 seat[guest]=1이면 이미 손님이 자리를 이용하고 있는것이므로,

if(guest[seat]>1) 이라면 거절을 해야하는 상황으로 분류해서 sorry++를 카운팅했다. 

포인트

  • 자리 배열을 생성하고, 입력받은 자리를 인덱스로 넣기 -> 배열 값에 따라 자리 사용 여부 판단 (0이면 사용가능, 1이면 불가)

코드

#include <iostream>
using namespace std;

/*
    1. 손님수n을 입력받는다.
    2. 각 손님이 앉고싶어하는 자리를 입력받는다.
    3. 거절당하는 손님 수를 카운트한다.
    4. 거절당한 손님 수를 출력한다.
*/

int main() {
    //1
    int n;
    cin >> n;
    //2
    int seat[101] = { 0, };
    int sorry = 0; //거절 
    int guest;
    //3
    while (n--) {
        cin >> guest;
        seat[guest]++; //seat[guest]=1
        if (seat[guest] > 1) //다음 손님이 같은 자리를 요구할때 거절..
            sorry++;
    }
    //4
    cout << sorry;
    return 0;
}