https://www.acmicpc.net/problem/1244
1.설명
일단 남자랑 여자 조건에 따른 행동을 맞게 해줘야 하는데, 남자 같은 경우는 3이면 3,6 같이 배수만 바꾸면 되므로 쉽게 해결했다. 여자는 기준을 잡아 대칭인 곳 까지 찾아 변경해야합니다. 한칸씩 증가하면서 같을때까지 증가하다 아니면 바로 break문으로 빠지게 해결했다. 마찬가지로 범위를 벗어나는 상황일때 필요한 상황을 보면서 진행했습니다.
2.코드
def change(num): #함수선언
if switch[num] == 0:
switch[num] = 1
elif switch[num]==1:
switch[num] = 0
return
N = int(input()) #스위치 수 저장
switch = [0] + list(map(int, input().split())) #스위치 상태
students = int(input())
for _ in range(students):
sex, num = map(int, input().split())
# 남자
if sex == 1:
for i in range(num, N+1, num):
change(i)
# 여자
elif sex == 2:
change(num)
for i in range(N//2):
if num + i > N or num - i < 1 : break
if switch[num + i] == switch[num - i]:
change(num + i)
change(num - i)
else:
break
for i in range(1, N+1):
print(switch[i], end = " ")
if i % 20 == 0 : #20 넘어가면
print()
'코딩test공부 > 백준python' 카테고리의 다른 글
13305.주유소 (1) | 2024.01.09 |
---|---|
9017.크로스 컨트리 (1) | 2024.01.08 |
8979.올림픽 (1) | 2024.01.03 |
10431.줄세우기 (0) | 2024.01.02 |
9655. 돌게임 (0) | 2024.01.02 |