자르비 왕국
[백준] 1244 스위치 켜고 끄기 - JAVA 본문
1. 문제 유형 : 구현
2. 시간복잡도 : O(N^2)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(in.readLine());
int[] status = new int[N+1];
StringTokenizer st = new StringTokenizer(in.readLine());
for (int i = 1; i <= N; i++) {
status[i] = Integer.parseInt(st.nextToken());
}
int sN = Integer.parseInt(in.readLine());
for (int i = 0; i < sN; i++) {
st = new StringTokenizer(in.readLine());
int gender = Integer.parseInt(st.nextToken());
int index = Integer.parseInt(st.nextToken());
if(gender == 1) {
//남학생
int nextIdx = index;
while(nextIdx <= N) {
status[nextIdx] = (status[nextIdx] == 0 ? 1 : 0);
nextIdx += index;
}
}else {
// 여학생
int next = index;
int prev = index;
while(next <= N && prev > 0) {
if(status[prev] == status[next]) {
if(status[prev] == 0) {
status[prev--] = status[next++] = 1;
}else {
status[prev--] = status[next++] = 0;
}
}else {
break;
}
}
}
}
for (int i = 1; i <= N; i++) {
sb.append(status[i]).append(" ");
if(i%20 == 0) sb.append("\n");
}
System.out.println(sb);
}
}
'문제풀이' 카테고리의 다른 글
[BJ] 2477 참외밭 - JAVA (0) | 2022.03.11 |
---|---|
[백준] 2304 창고 다각형 - JAVA (0) | 2022.02.28 |
[백준] 1753 최단경로 - JAVA (0) | 2022.02.25 |
[백준] 7576 토마토 - JAVA (0) | 2022.02.25 |
[정올] 1682 해밀턴 순환회로 - JAVA (0) | 2022.02.24 |