[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);
}
}
}
댓글남기기