BJ1244 스위치 켜고 끄기
https://www.acmicpc.net/problem/1244
- 스위치의 갯수와 상태를 입력 받아 배열에 저장해두기.
- 스위치가 조작된 횟수와 내용을 입력 받아 해결하기.
조건에 맞게 단순 구현하는 문제.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
static BufferedReader br;
static BufferedWriter bw;
static StringTokenizer st;
static boolean[] swc;
static void onoff(int idx) {
if (swc[idx])
swc[idx] = false;
else
swc[idx] = true;
}
public static void main(String[] args) throws IOException {
br = new BufferedReader(new InputStreamReader(System.in));
bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine(), " ");
swc = new boolean[N];
for (int i = 0; i < N; i++) {
if (st.nextToken().equals("1")) {
swc[i] = true;
}
}
int std_N = Integer.parseInt(br.readLine());
for (int i = 0; i < std_N; i++) {
st = new StringTokenizer(br.readLine(), " ");
if (st.nextToken().equals("1")) {
int tmp = Integer.parseInt(st.nextToken());
for (int j = 0; j < N; j++) {
if ((j + 1) % tmp == 0) {
onoff(j);
}
}
} else {
int size = 1;
int tmp = Integer.parseInt(st.nextToken()) - 1;
onoff(tmp);
while (tmp - size >= 0 && tmp + size < N && swc[tmp + size] == swc[tmp - size]) {
onoff(tmp + size);
onoff(tmp - size++);
}
}
}
for (int i = 0; i < N; i++) {
if (i != 0 && i % 20 == 0) {
System.out.println();
}
if (swc[i])
System.out.print("1 ");
else
System.out.print("0 ");
}
}
}
Author And Source
이 문제에 관하여(BJ1244 스위치 켜고 끄기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mraz0210/BJ1244-스위치-켜고-끄기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)