알고리즘/BOJ

백준 14711번 타일 뒤집기(Easy)

꾸준함. 2019. 1. 15. 01:09

문제 링크입니다: https://www.acmicpc.net/problem/14711


가능한 모든 입력에 대해 답이 유일하게 존재함이 보장된다. 이 문장이 핵심이였던 문제였습니다.

홀수번 돌리면 흑백이 바뀌고 짝수번 돌리면 원래 색깔이 유지됩니다.


따라서 전구 문제처럼 좌측 상단부터 순서대로 흑색 칸을 돌리면서 내려오도록 순서를 강제시키며 풀면 되는 문제였습니다.


#include <iostream>

#include <string>

using namespace std;

 

const int MAX = 1000;

 

string graph[MAX];

int visited[MAX][MAX];

 

int main(void)

{

        ios_base::sync_with_stdio(0);

        cin.tie(0);

        int N;

        cin >> N;

 

        string s;

        cin >> s;

 

        for (int i = 0; i < N; i++)

                 graph[0] += s[i];

 

        for (int i = 0; i < N; i++)

        {

                 for (int j = 0; j < N; j++)

                         if (graph[i][j] == '#')

                         {

                                 //

                                 if (j > 0)

                                          visited[i][j - 1] ^= 1;

                                 //

                                 if (j < N - 1)

                                          visited[i][j + 1] ^= 1;

                                 //

                                 if (i < N - 1)

                                         visited[i + 1][j] ^= 1;

                         }

 

                 for (int j = 0; j < N; j++)

                         if (visited[i][j])

                                 graph[i + 1] += '#';

                         else

                                 graph[i + 1] += '.';

                 for (int j = 0; j < N; j++)

                         cout << graph[i][j];

                 cout << "\n";

        }

        return 0;

}

 

 


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 16719번 ZOAC  (0) 2019.01.16
백준 3085번 사탕 게임  (5) 2019.01.15
백준 2503번 숫자 야구  (5) 2019.01.14
백준 11521번 Boggle  (3) 2019.01.14
백준 16234번 인구 이동  (0) 2019.01.12