728x90
https://www.acmicpc.net/problem/1244
성별 나눠서 문제에서 해달라는대로 구현하면 되는데
여학생인 경우 투포인터 알고리즘을 사용해서 대칭인 부분 배열의 인덱스를 구해주어야 한다
# 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
'Algorithm (PS)' 카테고리의 다른 글
백준 25591 푸앙이와 종윤이 Python (0) | 2022.09.19 |
---|---|
[leetcode] 42.Trapping Rain Water (백준 14719 빗물) (2) | 2022.09.19 |
[백준] 2212 센서 Python 그리디 풀이 (0) | 2022.09.18 |
merge sort snippet (0) | 2022.09.15 |
[LeetCode] fibonacci 수열의 다양한 풀이 (0) | 2022.09.14 |