본문 바로가기

백준/실버

[백준 14594번] 동방 프로젝트 (Small) (C++)

문제링크 : https://www.acmicpc.net/problem/14594

 

14594번: 동방 프로젝트 (Small)

첫 번째 행동으로 1번과 2번 방이 합쳐져 (1, 2), (3), (4), (5) 상태가 된다. 이후 두 번째 행동으로 2, 3, 4번 방이 합쳐져 (1, 2, 3, 4), (5)의 상태가 된다. 따라서 남아있는 동방의 수는 2가 된다.

www.acmicpc.net

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define MAX 987654321
#define pii pair <int, int>

int main(void) {
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int N, M;
    cin >> N;
    cin >> M;

    int arr[100];
    memset(arr, 0, sizeof(arr));

    int cnt = 0;

    for(int i=0; i<M; i++)
    {
        int x, y;
        cin >> x >> y;
        for(int j=x-1; j<y-1; j++)
        {
            arr[j]=1;
        }
    }

    for(int i=0; i<N; i++)
    {   
        if(arr[i]==0) 
        {
            cnt++; //벽의 수
        }
    }

    cout << cnt;

    return 0;
}

처음에 배열을 0으로 초기화한 후에 방일때는 1을 할당했다.

이때 y-1 전까지만 1로 할당하여 뒤에 벽을 체크해줬다.

0인 것은 벽의 갯수이므로 0의 갯수를 카운트하여 출력했다.