콘솔창 & 윈도우창/코딩 테스트

프로그래머스 lv1 덧칠하기

뽀또치즈맛 2023. 11. 17. 20:07
#include <vector>
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

struct wall
{
    int index;
    bool check;
};

int solution(int n, int m, vector<int> section) {
    int answer = 0;
    vector <wall> arr;

    for (int i = 0; i < n; i++)
    {
        arr.push_back({(i+1),true});
    }

    for (int i = 0; i < section.size(); i++)
    {
        arr[(section[i] - 1)].check = false;
    }

    for (int k = 0; k < arr.size(); k++)
    {
        if (k == 0 && arr[k].check == false)
        {
            answer++;
            for (int i = 0; i < m; i++)
            {
                arr[i].check = true;
            }
        }

        if (arr[k].check == false && k + m < n)
        {
            answer++;
            for (int i = k; i < k + m; i++)
            {
                arr[i].check = true;
            }
        }

        if (arr[k].check == false && k + m >= n)
        {
            answer++;
            for (int i = k; i < arr.size(); i++)
            {
                arr[i].check = true;
            }
        }
    }

    cout << answer;

    return answer;
}