여니의 취준 준비/코딩테스트 (Java)

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

여니's 2022. 7. 11. 22:26

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PuPq6AaQDFAUq&categoryId=AV5PuPq6AaQDFAUq&categoryType=CODE&problemTitle=1979&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 

 

SW Expert Academy

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

swexpertacademy.com

 

노트북에는 인텔리제이가 깔려있기 때문에..

일단 인텔리제이에서 프로젝트 생성하는 방법 참고한 블로그 주소도 첨부!

https://simqizzang.tistory.com/3

 

[IntelliJ] 프로젝트에서 Run이 활성화 안되어 있을 때

IntelliJ에서 프로젝트를 만들어서 열심히 코딩을 했고 Run해보려고 하니까 다음과 같이 Run버튼이 회색으로 되어서 클릭조차 불가능 했네요. Jdk를 잡고 있는데도 어떻게 빌드해줘야 될 지 설정이

simqizzang.tistory.com


처음에 문제를 잘못 이해해서 한참 헤맸다..

역시 오늘도 ㅠ..ㅠ

 

K가 3이면 딱 3자리가 있는 공간의 개수를 찾아야하는 문제인데,

공간이 4자리여도 되는 줄 알았으나

딱 3자리여야 했다 ^.^

 

 

쨌든 가로, 세로 각각 들어갈 수 있는 위치를 

구해주면 되는 간단했던 문제!

 

 

 

 

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T;
        T = sc.nextInt();

        for (int test_case = 1; test_case <= T; test_case++) {
            int N = sc.nextInt();
            int K = sc.nextInt();
            int[][] array = new int[N][N];
            int answer = 0;

            for (int i = 0; i < N; i++) {
                for (int j = 0; j < N; j++) {
                    array[i][j] = sc.nextInt();
                }
            }

            // 가로(행)
            for (int i = 0; i < N; i++) {
                int temp = 0;
                for (int j = 0; j < N; j++) {
                    if (array[i][j] == 0) { // 벽
                        if (temp == K) {
                            answer += 1;
                        }
                        temp = 0;
                    } else {
                        temp += 1;
                    }
                }
                if (temp == K) {
                    answer += 1;
                }
            }

            // 세로(행)
            for (int i = 0; i < N; i++) { // 열
                int temp = 0;
                for (int j = 0; j < N; j++) { // 행
                    if (array[j][i] == 0) { // 벽
                        if (temp == K) {
                            answer += 1;
                        }
                        temp = 0;
                    } else {
                        temp += 1;
                    }
                }
                if (temp == K) {
                    answer += 1;
                }
            }
            System.out.printf("#%d %d\n",test_case,answer);
        }
    }
}