-
[SWEA] 1979. 어디에 단어가 들어갈 수 있을까 c++Coding Test/SW Expert Academy 2022. 11. 16. 11:26728x90
- 문제
※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.
N X N 크기의 단어 퍼즐을 만들려고 한다. 입력으로 단어 퍼즐의 모양이 주어진다.
주어진 퍼즐 모양에서 특정 길이 K를 갖는 단어가 들어갈 수 있는 자리의 수를 출력하는 프로그램을 작성하라.input output 2
5 3
0 0 1 1 1
1 1 1 1 0
0 0 1 0 0
0 1 1 1 1
1 1 1 0 1
5 3
1 0 0 1 0
1 1 0 1 1
1 0 1 1 1
0 1 1 0 1
0 1 1 1 0#1 2
#2 6- 문제 해결
행우선 2중for문, 열우선 2중for문으로
연속된 1의 개수와 k가 같은지 검사하면 된다.
#include<iostream> #include <vector> #include <numeric> using namespace std; int main(int argc, char** argv) { int test_case; int T; cin>>T; for(test_case = 1; test_case <= T; ++test_case) { int n = 0, k = 0; cin >> n >> k; vector<vector<int>> vec(n, vector<int>(n, 0)); for(int i = 0; i < n; i++){ int cnt = 0; for(int j = 0; j < n; j++){ cin >> vec[i][j]; } } int result = 0; //행우선 for(int i = 0; i < n; i++){ int sum = 0; for(int j = 0; j < n; j++){ if( vec[i][j] == 0){ if( sum == k){ result++; } sum = 0; } else{ sum++; } } if( sum == k) result++; } //열우선 for(int i = 0; i < n; i++){ int sum = 0; for(int j = 0; j < n; j++){ if( vec[j][i] == 0){ if(sum == k){ result++; } sum = 0; } else{ sum++; } } if(sum == k) result++; } cout << "#" << test_case << " " << result << endl; } return 0; }
728x90'Coding Test > SW Expert Academy' 카테고리의 다른 글
[SWEA] 1974. 스도쿠 검증 c++ (0) 2022.11.16 [SWEA] 1976. 시각 덧셈 c++ (0) 2022.11.16 [SWEA] 1983. 조교의 성적 매기기 c++ (0) 2022.11.15 [SWEA] 1984. 중간 평균값 구하기 c++ (0) 2022.11.15 [SWEA] 1989. 초심자의 회문 검사 c++ (0) 2022.11.15