[SWEA] 1220. Magnetic

1 분 소요

문제 링크

[SWEA] 1220. Magnetic


풀이 과정

빨간색(N극) 자성체는 아래로, 파란색(S극) 자성체는 위로 이끌립니다.


for (int j = 0; j < N; j++) {
    boolean start = false;

    for (int i = 0; i < N; i++) {
        if (map[i][j] == 1) {
            start = true;
        } else if (map[i][j] == 2 && start) {
            start = false;
            cnt++;
        }
    }
}

위에 빨간색(1) 자성체가 위치하고, 그 아래 파란색(2) 자성체가 위치해야 교착 상태가 발생되므로, 위와 같이 코드를 작성해 교착 상태를 구분지을 수 있습니다. 행을 하나씩 증가시키며, 파란색 자성체를 만났을 때 이전에 빨간 자성체를 만난 적이 있으면 교착 상태 개수를 증가시킵니다.


코드

import java.util.Scanner;

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

        for (int tc = 1; tc <= 10; tc++) {
            int N = sc.nextInt();
            int[][] map = new int[N][N];
            int cnt = 0;

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

            for (int j = 0; j < N; j++) {
                boolean start = false;

                for (int i = 0; i < N; i++) {
                    if (map[i][j] == 1) {
                        start = true;
                    } else if (map[i][j] == 2 && start) {
                        start = false;
                        cnt++;
                    }
                }
            }

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

카테고리:

업데이트:

댓글남기기