아직은 정체성이 없는 블로그

[SWEA][D2][c++] 1979. 어디에 단어가 들어갈 수 있을까 본문

알고리즘 역량테스트 문제/SWEA

[SWEA][D2][c++] 1979. 어디에 단어가 들어갈 수 있을까

coooding 2020. 7. 4. 01:00

문제

1979. 어디에 단어가 들어갈 수 있을까

 

문제링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PuPq6AaQDFAUq#none

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

문제풀이

 

1. 가로방향 먼저 해당 글자수의 빈칸이 있는지 확인한다.

2. 세로방향에도 해당 글자수의 빈킨이 있는지 확인한다.

3. 해당 칸들의 값을 출력한다.

 

코드

#include<iostream>
using namespace std;
 
int main(int argc, char** argv)
{
    int test_case;
    int T;
    cin>>T;
    int map[15][15];
    for(test_case = 1; test_case <= T; ++test_case)
    {
        int n,k;
        int result=0;
        cin >> n >> k;

        //입력
        for(int i=0; i<n; i++){
            for(int j=0; j<n; j++){
                cin >>map[i][j];
            }
        }

        //가로에서 확인
        for(int i=0; i<n; i++){
            int flag=0;
            for(int j=0; j<n; j++){
                if(map[i][j]==1){
                    flag++;
                    if(flag>k)
                        flag=0;
                    if(j==n-1&&flag==k)
                        result++;
                }
                else{
                    if(flag==k)
                        result++;     
                    flag=0;
                }
            }
        }

        //세로에서 확인 
        for(int i=0; i<n; i++){
            int flag=0;
            for(int j=0; j<n; j++){
                if(map[j][i]==1){
                    flag++;
                    if(flag>k)
                        flag=0;
                    if(j==n-1&&flag==k)
                        result++;
                }
                else{
                    if(flag==k)
                        result++;     
                    flag=0;
                }
            }
        }
        cout<<"#"<<test_case<<" "<<result<<"\n";
 
         
    }
    return 0;
}

 

Comments