노력만이 살길!/알고리즘

[SWEA][1220] 1220번 Magnetic

갱스타 2022. 3. 1. 00:48

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14hwZqABsCFAYD 

 

SW Expert Academy

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

swexpertacademy.com

자바 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Solution{
    static int[][] map;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st=null;
        for (int tc = 1; tc <= 10; tc++) {
            st=new StringTokenizer(br.readLine());
            int T = Integer.parseInt(st.nextToken());
            map=new int[T][T]; //100*100사이즈
            for(int i = 0; i < T; i++) {
                st=new StringTokenizer(br.readLine());
                for(int j = 0; j < T; j++) {
                    map[i][j] = Integer.parseInt(st.nextToken());
                }
            }
            int result=0;
            for (int j = 0; j < T; j++) {
                top:    for (int i = 0; i < T; i++) {
                    if(map[i][j]==1){
                        int temp=i+1;
                        for (int k = temp; k <T ; k++) {
                            if(map[k][j]==2){
                                result++;
                                continue top;
                            }
                            if(map[k][j]==1)
                                continue top;
                        }
                    }
                }
            }
            System.out.println("#"+tc+" "+result);

        }
    }
}

자바 코드 2 시간복잡도를 줄인 코드



import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;


public class Solution {
    static int[][] map;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st=null;
        for (int tc = 1; tc <= 10; tc++) {
            st=new StringTokenizer(br.readLine());
            int T = Integer.parseInt(st.nextToken());
            map=new int[T][T]; //100*100사이즈
            for(int i = 0; i < T; i++) {
                st=new StringTokenizer(br.readLine());
                for(int j = 0; j < T; j++) {
                    map[i][j] = Integer.parseInt(st.nextToken());
                }
            }
            int result=0;
            for (int j = 0; j < T; j++) {
                int temp=0;
                for (int i = 0; i < T; i++) {
                    if(map[i][j]==0) continue;
                    if(temp==1&&map[i][j]==2){
                        result++;
                    }
                    temp=map[i][j];

                }
            }
            System.out.println("#"+tc+" "+result);

        }
    }
}