Algorithm (PS)
백준 1244 스위치 켜고 끄기 / 구현
minjiwoo
2022. 9. 18. 18:23
728x90
https://www.acmicpc.net/problem/1244
1244번: 스위치 켜고 끄기
첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩
www.acmicpc.net
성별 나눠서 문제에서 해달라는대로 구현하면 되는데
여학생인 경우 투포인터 알고리즘을 사용해서 대칭인 부분 배열의 인덱스를 구해주어야 한다
# https://www.acmicpc.net/problem/1244
n = int(input()) # 스위치의 개수
data = list(map(int, input().split()))
m = int(input()) # 학생 수
for _ in range(m):
gender, number = map(int, input().split())
if gender == 1: # 남학생인 경우
for i in range(number-1, n, number):
if data[i] == 0:
data[i] = 1
else:
data[i] = 0
else: # 여학생인 경우
number -= 1 # index에 맞추기
k = 0
while True:
if number - k < 0 or number + k > n-1:
break
if data[number - k] == data[number + k]:
k += 1
else:
break
k -= 1
for i in range(number-k, number+k+1):
if data[i] == 0:
data[i] = 1
else:
data[i] = 0
for i in range(n):
print(data[i], end= " ")
if (i+1) % 20 == 0:
print()
728x90