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

 

 

#문제 간단 정리

 

#문제 해결 방법

 

간단한 문자열 파싱 구현문제

 

주요 요구하는 구현 조건은 연속된 X 를 판별하는데 있다.

나는 연속된 x를 추적하는 seq 변수를 만들어서

 '.' 이 나온다면 초기화를 시켯다

 

여기서 seq 을 결과값 nums 이중벡터에 담는데

0이라면 담기지 않게 해두었다

그리고 나중에 비어있는 벡터에는 0을 출력하게 했다

 

#전체 코드

#include <iostream>
#include <vector>

using namespace std;

int main() {
    

    while (true) {
        int n;
        cin >> n;
        if (n == 0) break;

        vector<vector<char>> nng(n);

        for (int i = 0; i < n; i++) {
            string s; cin >> s;
            for (int j = 0; j < n; j++) {    
                 nng[i].push_back( s[j]);
            }
        }

        vector<vector<int>> nums(2*n);

        //열 탐색
        for (int i = 0; i < n; i++) {
            int seq = 0;
            for (int j = 0; j < n; j++) {
                if (nng[i][j] == 'X') seq++;
                else {
                    if (seq != 0) {
                        nums[i].push_back(seq);
                        seq = 0;
                    }
                }
            }
            if (seq != 0) {
                nums[i].push_back(seq);
            }
        }

        //행탐색
        for (int i = 0; i < n; i++) {
            int seq = 0;
            for (int j = 0; j < n; j++) {
                if (nng[j][i] == 'X') seq++;
                else {
                    if (seq != 0) {
                        nums[n+i].push_back(seq);
                        seq = 0;
                    }
                }
            }
            if (seq != 0) {
                nums[n+i].push_back(seq);
            }
        }

        // 출력: 행 결과 먼저
        for (int i = 0; i < n; i++) {
            if (nums[i].empty()) cout << "0";
            else {
                for (auto a : nums[i]) {
                    cout << a << ' ';
                }
            }
            cout << '\n';
        }

        // 출력: 열 결과 나중에
        for (int i = 0; i < n; i++) {
            if (nums[n + i].empty()) cout << "0";
            else {
                for (auto a : nums[n + i]) {
                    cout << a << ' ';
                }
            }
            cout << '\n';
        }

    }
   
    

    return 0;
}

+ Recent posts