끄적끄적 코딩
article thumbnail

스위치가 주어지고 남학생과 여학생에게 스위치가 주어질때 최종 스위치의 상태를 출력하는 문제입니다.

남학생일때는 해당위치의 배수를 전부 반대 상태로 만듭니다.(켜져있다면 끄고, 꺼져있다면 켭니다)
여학생의 경우 해당 위치에서 대칭이 되는 위치까지 반대 상태로 만듭니다.

각 학생의 성별과 위치를 입력으로 받아서 최종적인 스위치의 상태를 출력해주었습니다.

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean[] arr = new boolean[n + 1];
		for(int i=1; i<=n; ++i) {
			int num = sc.nextInt();
			if(num == 0) {
				arr[i] = false;
			} else {
				arr[i] = true;
			}
		}
		int m = sc.nextInt();
		for(int i=0; i<m; ++i) {
			int s = sc.nextInt();
			int index = sc.nextInt();
			
			if(s == 1) {
				for(int j=index; j<=n; j+=index) {
					arr[j] = !arr[j];
				}
			} else {
				arr[index] = !arr[index];
				for(int j=1; j<=n; ++j) {
					if(index-j <= 0 || index+j > n) {
						break;
					}
					if(arr[index+j] == arr[index-j]) {
						arr[index+j] = !arr[index+j];
						arr[index-j] = !arr[index-j];
					} else {
						break;
					}
				}
			}
		}
		for(int i=1; i<arr.length; ++i) {
			System.out.printf("%d ", arr[i] ? 1 : 0 );
			if((i % 20) == 0) {
				System.out.println();
			}
		}
	}
}

검색 태그