1244:스위치 켜고 끄기
solved.ac 난이도: Silver4
날짜: 2021년 2월 1일
문제유형: 배열
사용언어: 자바
문제 링크
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int s = sc.nextInt(); //스위치 개수
int arr[] = new int[s]; //스위치 개수만큼
for(int i=0;i<s;i++) {
arr[i] = sc.nextInt();
}
int person = sc.nextInt();
while(person>0) {
int gender = sc.nextInt();
int place = sc.nextInt();
if(gender ==1) {
//남자
for(int i = place-1;i<s;i += place) {
if(arr[i] == 0)
arr[i] = 1;
else
arr[i] = 0;
}
}
else {
//여자
place = place -1;
arr[place] = (arr[place]+1) % 2;
for(int i=1;i<arr.length;i++) {
if((place-i) >=0 && (place+i)<arr.length) {
if(arr[place -i] == arr[place+i]) {
arr[place-i] = (arr[place-i]+1) % 2;
arr[place+i] = (arr[place+i]+1) % 2;
}
else
break;
}
}
}
person--;
}
StringBuilder sb = new StringBuilder();
for(int i=0;i<arr.length;i++) {
sb.append(arr[i]+" ");
if((i+1) %20 == 0) {
sb.setLength(sb.length()-1);
System.out.println(sb.toString());
sb.delete(0, sb.length());
}
if(i == arr.length-1 && (i+1)%20 != 0) {
sb.setLength(sb.length()-1);
System.out.print(sb.toString());
}
}
}
}
출력 조선이 20개 이상이면 아랫줄로 넘어가서 출력하는 것인데 출력 조건에서 자꾸 틀려서 여러번 제출했다.
'알고리즘 > 백준' 카테고리의 다른 글
[JAVA]백준_10974_모든 순열 (0) | 2021.02.07 |
---|---|
[JAVA]백준_5597_과제 안 내신 분..? (0) | 2021.02.07 |
[JAVA]백준_2167_별찍기 -6 (0) | 2021.02.07 |
[JAVA]백준_2167_2차원 배열의 합 (0) | 2021.02.07 |
[JAVA] 백준_2493_탑 (0) | 2021.02.07 |