"SWEA 1979 어디에 단어가 들어갈 수 있을까"의 두 판 사이의 차이

14번째 줄: 14번째 줄:
<source lang='java'>
<source lang='java'>
import java.util.Scanner;
import java.util.Scanner;
class Solution {
public class Solution {
     public static void main(String args[]) {
     public static void main(String args[]) {
         Scanner sc = new Scanner(System.in);
         Scanner sc = new Scanner(System.in);
         int T = sc.nextInt();
         int i, j, l, T = sc.nextInt();
         for(int t=1; t<=T; t++) {
         for(int t=1; t<=T; t++) {
             int i, N = sc.nextInt();
             int n = sc.nextInt();
             int nums[] = new int[N];
             int k = sc.nextInt();
             int maxs[] = new int[N];
             int a[][] = new int[n][n];
             for(i=0; i<N; i++) nums[i] = sc.nextInt();
             for(i=0; i<n; i++) {
            int max = 0;
                for(j=0; j<n; j++) {
            for(i=N-1; i>=0; i--) {
                    a[i][j] = sc.nextInt();
                if( nums[i] > max ) max = nums[i];
                 }
                 maxs[i] = max;
             }
             }
             long sum = 0;
 
             for(i=0; i<N; i++) sum += maxs[i] - nums[i];
             int count = 0;
             System.out.format( "#%d %d\n", t, sum );  
            // horizontal
             for(i=0; i<n; i++) {
                outerloop:
                for(j=0; j<=n-k; j++) {
                    if( j != 0 && a[i][j-1] == 1 ) continue;
                    if( j+k != n && a[i][j+k] == 1 ) continue;
                    for(l=0; l<k; l++) {
                        if( a[i][j+l] == 0 ) continue outerloop;
                    }
                    count++;
                }
            }
            // vertical
            for(i=0; i<n; i++) {
                outerloop:
                for(j=0; j<=n-k; j++) {
                    if( j != 0 && a[j-1][i] == 1 ) continue;
                    if( j+k != n && a[j+k][i] == 1 ) continue;  
                    for(l=0; l<k; l++) {
                        if( a[j+l][i] == 0 ) continue outerloop;
                    }
                    count++;
                }
            }
             System.out.format( "#%d %d\n", t, count );  
         }
         }
     }
     }
}
}
</source>
</source>

2018년 9월 8일 (토) 17:14 판

1 개요

SWEA 1979 어디에 단어가 들어갈 수 있을까
SW Expert 아카데미
# 문제 풀이

틀:SWEA 난이도 2-1

2 C++

3 Java

import java.util.Scanner;
public class Solution {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int i, j, l, T = sc.nextInt();
        for(int t=1; t<=T; t++) {
            int n = sc.nextInt();
            int k = sc.nextInt();
            int a[][] = new int[n][n];
            for(i=0; i<n; i++) {
                for(j=0; j<n; j++) {
                    a[i][j] = sc.nextInt();
                }
            }

            int count = 0;
            // horizontal
            for(i=0; i<n; i++) {
                outerloop:
                for(j=0; j<=n-k; j++) {
                    if( j != 0 && a[i][j-1] == 1 ) continue;
                    if( j+k != n && a[i][j+k] == 1 ) continue; 
                    for(l=0; l<k; l++) {
                        if( a[i][j+l] == 0 ) continue outerloop;
                    }
                    count++;
                }
            }
            // vertical
            for(i=0; i<n; i++) {
                outerloop:
                for(j=0; j<=n-k; j++) {
                    if( j != 0 && a[j-1][i] == 1 ) continue;
                    if( j+k != n && a[j+k][i] == 1 ) continue; 
                    for(l=0; l<k; l++) {
                        if( a[j+l][i] == 0 ) continue outerloop;
                    }
                    count++;
                }
            }
            System.out.format( "#%d %d\n", t, count ); 
        }
    }
}
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}