ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 15729번: 방탈출
    구현(Implementation) 2018. 7. 5. 15:06
    반응형

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


    1. 문제

    방탈출 게임을 하던 혜민이는 마지막 문제에 봉착했다. 단서는 다음과 같다.


    앞에는 일렬로 놓여진 N개의 버튼이 모두 불이 꺼진 상태로 있다.

    0 또는 1로 구성되어 있는 N자리 수가 적힌 쪽지가 있다.

    0은 불이 꺼진 버튼, 1은 불이 켜진 버튼을 뜻한다.

    불이 켜져 있는 버튼을 누르면 불이 꺼지고, 불이 꺼져 있는 버튼을 누르면 불이 켜진다.

    버튼을 누르면 그 버튼 뿐만이 아닌 오른쪽 두 개의 버튼도 같이 눌린다. 

    혜민이는 현재 모두 불이 꺼진 상태에서 버튼을 최소로 눌러서 쪽지와 똑같은 상태로 만들어야 한다는 것을 알아냈다! 혜민이를 도와줘서 방탈출 게임에 성공하자.


    2. 알고리즘

    키워드 - 구현


    3. 코드


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    #include <iostream>
    #include <sstream>
    #include <string>
    #include <algorithm>
    #include <functional>
    #include <vector>
    #include <list>
    #include <queue>
    #include <deque>
    #include <map>
    #include <set>
    #include <stack>
     
    using namespace std;
     
    #define MAX_SIZE 100
    #define INF 0x7fffffff
    #define CENDL "\n"
    #define ll long long
     
    /*
    * @memory  - 5896  kb
    * @time    - 64 ms
    */
     
    int main() {
     
        cin.tie(0);
        std::ios::sync_with_stdio(false);
        
     
        int n; cin >> n;
        vector<int> arr(n+2);
        
        for (int i=0; i<n; i++) {
            cin >> arr[i];
        }
        
        int sol = 0;
        for (int i=0; i< n; i++) {
            if (arr[i] == 1)
            {
                sol++;
                arr[i+1]=!arr[i+1];
                arr[i+2]=!arr[i+2];
            }
        }
     
        cout << sol << CENDL;
        return 0;
    }
     
    cs

    반응형

    댓글

Designed by Tistory.