본문 바로가기

알고리즘 (2020 : 08 : 10 ~ )/구현, 시뮬

[백준 / BOJ] 1244 스위치 켜고 끄기

문제

출처 : https://www.acmicpc.net/problem/1244

 

1244번: 스위치 켜고 끄기

첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩

www.acmicpc.net

1번부터 N번까지 총 N개의 스위치가 있다.

 

쿼리가 주어졌을때, 최종 스위치 상태를 출력하는 문제다.


문제에서 주어진 그대로 구현하면 되는문제다.

 

출력이 20이 넘어갈때, 줄 바꿈을 해줘야하는점만 주의하면 어렵지않게 풀리는 문제였다.

 

주요 소스코드

    private void girl(int num){
        int left = num;
        int right = num;
        while(left >= 1 && right <= N){
            if(swi[left] != swi[right]) break;
            left--;
            right++;
        }
        right -= 1;
        left += 1;
        if(left > right){
            left = num;
            right = num;
        }
        for(int i = left; i <= right; i++) swi[i] = (swi[i] == 1) ? 0 : 1;
    }
    
    private void boy(int num){
        for(int i = num; i <= N; i+=num) swi[i] = (swi[i] == 1) ? 0 : 1;
    }

전체소스코드

https://github.com/devxb/JJUNalgo/blob/master/BOJ%20source%20code/1244%20%EC%8A%A4%EC%9C%84%EC%B9%98%20%EC%BC%9C%EA%B3%A0%20%EB%81%84%EA%B8%B0/Main.java

 

GitHub - devxb/JJUNalgo: 백준 알고리즘 소스코드🙃

백준 알고리즘 소스코드🙃. Contribute to devxb/JJUNalgo development by creating an account on GitHub.

github.com