문제 자체는 정답률에 비해 쉬운 문제였다.
이번 문제에서 내가 틀린 부분이 2가지 있었다.
1번 문제는 쉽게 찾아서 처리해줄 수 있었고, 출력 값 설정 또한 문제를 대충 읽어서 생긴 문제였다.
문제속에 답이 있다는 옛 말처럼 문제를 꼼꼼히 읽고 푸는 걸 습관들이자!
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int[] switches = new int[n+1];
for(int i=1;i<=n;i++) {
switches[i] = Integer.parseInt(st.nextToken());
}
int student = Integer.parseInt(br.readLine());
for(int i=0;i<student;i++) {
st = new StringTokenizer(br.readLine(), " ");
int gender = Integer.parseInt(st.nextToken());
int number = Integer.parseInt(st.nextToken());
int temp = number;
if(gender == 1) { // 남자인 경우
while (temp <= n) {
switches[temp] = switches[temp] == 0 ? 1 : 0;
temp += number;
}
}
else if(gender == 2) { // 여자인 경우
switches[number] = switches[number] == 0 ? 1 : 0;
int size = 1;
while(true) {
int prev = number - size;
int next = number + size;
if(prev < 1 || next > n) break;
if(switches[prev] == switches[next]){
switches[prev] = switches[prev] == 0 ? 1 : 0;
switches[next] = switches[next] == 0 ? 1 : 0;
size++;
}
else break;
}
}
}
StringBuilder sb = new StringBuilder();
for(int i=1;i<=n;i++) {
sb.append(switches[i]).append(" ");
if(i==20 || i==40 || i==60 || i==80){
sb.append("\n");
}
}
System.out.println(sb);
}
}