본문 바로가기
Problem Solving/SWEA

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

by 테리는당근을좋아해 2020. 1. 29.

문제

N X N 크기의 단어 퍼즐이 입력으로 주어졌을 때

특정 길이 K를 갖는 단어가 들어갈 수 있는 자리의 수를 출력하는 프로그램을 작성하라.

 

풀이방법

그림과 같은 2차원 배열과 K를 입력으로 받았을 때, 연속된 1의 길이가 K와 같은 길이를 찾는 문제

 

소스코드

package samsung;

import java.util.*;

public class s_1979 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int test = sc.nextInt();
		
		for(int t = 1; t <= test; t++) {
			int n = sc.nextInt();
			int l = sc.nextInt();
			int[][] map = new int[n][n];
			int words = 0;
			
			for(int i = 0; i < n; i++) {
				for(int j = 0; j < n; j++) {
					map[i][j] = sc.nextInt();
				}
			}
			
			for(int i = 0; i < n; i++) {
				int cnt = 0;
				for(int j = 0; j < n; j++) {
					if(map[i][j] == 0) {
						if(cnt == l)
							words++;
						cnt = 0;
					}
					else
						cnt++;
				}
				if(cnt == l)
					words++;
			}
			
			for(int j = 0; j < n; j++) {
				int cnt = 0;
				for(int i = 0; i < n; i++) {
					if(map[i][j] == 0) {
						if(cnt == l)
							words++;
						cnt = 0;
					}
					else
						cnt++;
				}
				if(cnt == l)
					words++;
			}
			System.out.println("#" + t + " " + words);
		}
	}
}

'Problem Solving > SWEA' 카테고리의 다른 글

[SWEA] 1974. 스도쿠 검증  (0) 2020.01.29
[SWEA] 1976. 시각 덧셈  (0) 2020.01.29
[SWEA] 1983. 조교의 성적 매기기  (0) 2020.01.29
[SWEA] 1984. 중간 평균값 구하기  (0) 2020.01.29
[SWEA] 1986. 지그재그 숫자  (0) 2020.01.29

댓글