티스토리 뷰

728x90

문제 링크

www.acmicpc.net/problem/1244

 

1244번: 스위치 켜고 끄기

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

www.acmicpc.net

 

풀이

단순 시뮬레이션 문제입니다.

들어온 입력에 따라 문제에서 요구하는대로 구현하면 됩니다

스위치를 켜고, 끄는 연산은 1과 XOR해주면 쉽게 처리됩니다.

 

 

정답 코드

#include <bits/stdc++.h>

using namespace std;

int n, m;
int p[111];

int main() {
    cin >> n;
    for (int i = 1; i < n + 1; i++) {
        cin >> p[i];
    }
    cin >> m;
    while (m--) {
        int a, b;
        cin >> a >> b;
        if (a == 1) {
            for (int i = b; i < n + 1; i += b) {
                p[i] ^= 1;
            }
        } else {
            for (int i = 0; b + i < n + 1 && b - i > 0 && p[b + i] == p[b - i]; i++) {
                p[b - i] = (p[b + i] ^= 1);
            }
        }
    }
    for (int i = 1; i < n + 1; i++) {
        cout << p[i] << ' ';
        if (i % 20 == 0) cout << '\n';
    }
}
728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함