스위치가 주어지고 남학생과 여학생에게 스위치가 주어질때 최종 스위치의 상태를 출력하는 문제입니다.
남학생일때는 해당위치의 배수를 전부 반대 상태로 만듭니다.(켜져있다면 끄고, 꺼져있다면 켭니다)
여학생의 경우 해당 위치에서 대칭이 되는 위치까지 반대 상태로 만듭니다.
각 학생의 성별과 위치를 입력으로 받아서 최종적인 스위치의 상태를 출력해주었습니다.
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();
}
}
}
}
'알고리즘' 카테고리의 다른 글
[Java] 백준 15644번 구슬 탈출 3 (0) | 2023.02.07 |
---|---|
[Java] 백준 13459번 구슬 탈출 (0) | 2023.02.07 |
[Java] 백준 15686번 치킨 배달 (0) | 2023.02.06 |
[Java] 백준 13460번 구슬 탈출 2 (0) | 2023.02.06 |
[Java] 백준 19237번 어른 상어 (0) | 2023.02.06 |