본문 바로가기

Java/SWEA

[JAVA] SWEA 1220. [S/W 문제해결 기본] 5일차 - Magnetic

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AV14hwZqABsCFAYD&categoryId=AV14hwZqABsCFAYD&categoryType=CODE&problemTitle=&orderBy=RECOMMEND_COUNT&selectCodeLang=JAVA&select-1=3&pageSize=10&pageIndex=1

 

SW Expert Academy

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

swexpertacademy.com

 

 

 

[SWEA] 1220 : Magnetic - Python (velog.io)

 

[SWEA] 1220 : Magnetic - Python

테이블 위에 자성체들이 놓여 있다.자성체들은 성질에 따라 색이 부여되는데, 푸른 자성체의 경우 N극에 이끌리는 성질을 가지고 있고, 붉은 자성체의 경우 S극에 이끌리는 성질이 있다.아래와

velog.io

 

 

-  자성체들은 상호작용하여 교착 상태를 발생시킬 수 있다. 

- 교착 상태가 발생하는 조건은 N극(1) 과 S극(0)이 인접한 열에 위치할 때 

 

 

정답 

 

import java.util.*;

public class Solution {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		for (int t=1; t<=10; t++) {
			sc.nextInt();
			int table[][] = new int[100][100];
			
			int answer = 0; //테이블 위에 남아있는 교착 상태의 개수
			
			//1: N극 윗부분으로 이끌림, 2:S극 아래부분에 이끌림
			for(int i=0; i<100; i++)
			{
				for(int j=0; j<100; j++)
				{
					table[i][j] = sc.nextInt();
				}
			}
			
			//교착 상태 계산
			for(int j=0; j<100; j++)
			{
				boolean flag = false; //현재 열에 N이 있는지 여부
				for(int i=0; i<100; i++)
				{
					if(table[i][j] == 1)
					{
						flag =true; //N극이 발견되었음을 표시
						
					}
                    //현재 위치에 자성체가 있고, 그 자성체가 s극 이며 이전에 N극이 있었던 경우  
                    else if(table[i][j]==2&&flag)
					{
						answer++; //N극 다음에 S극이 나오면 교착상태 발생
						flag= false; //교착 상태를 처리했으므로 초기화 
					}
				}
			}
			
			
			
			System.out.printf("#%d %d\n", t, answer);
		}
	}
}