[백준] 1244번 스위치 켜고 끄기 (java)

728x90
반응형

여자의 경우 현재의 위치를 left, right 변수를 둬서 각각 왼쪽, 오른쪽으로 이동하며 비교해나간다.

 


import java.util.Scanner;

public class Main {
	
	static int n,m;
	static int[] light=new int[n];
	static int[][] student=new int[m][2];
	
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		n=sc.nextInt();
		light=new int[n];
		for (int i = 0; i < n; i++) {
			light[i]=sc.nextInt();
		}
		m=sc.nextInt();
		student=new int[m][2];
		for (int i = 0; i < m; i++) {
			student[i][0]=sc.nextInt();
			student[i][1]=sc.nextInt();
		}
		for (int i = 0; i <m; i++) {
			if(student[i][0]==1) {
				boy(student[i][1]);
			}else {
				girl(student[i][1]);
			}
		}
		
		for (int i = 0; i < n; i++) {	
			System.out.print(light[i]+" ");
			if((i+1)%20==0)System.out.println();
		}
		
	}
	
	public static void girl(int num) {
		int left=num-1;
		int right=num-1;
		while(left>=0 && right<n && light[left]==light[right]) {
			light[left]=1-light[left];
			if(left!=right)
			light[right]=1-light[right];
			left-=1;
			right+=1;
		}
		
	}
	
	public static void boy(int num) {
		for (int i = 0; i < light.length; i++) {
			if((i+1)%num==0) {
				light[i]=1-light[i];
			}
		}
	}
}
728x90
반응형
TAGS.

Comments