본문 바로가기
알고리즘/백준

백준_1244_스위치 켜고 끄기

by 박 현 황 2021. 2. 2.

1244:스위치 켜고 끄기

solved.ac 난이도: Silver4
날짜: 2021년 2월 1일
문제유형: 배열
사용언어: 자바

문제 링크

1244번: 스위치 켜고 끄기

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