홍우진의 개발 일기장
[백준] 1244번: 스위치 켜고 끄기 / 파이썬 본문
728x90
반응형
문제 링크
https://www.acmicpc.net/problem/1244
풀이 코드
def onoff(idx): # 스위치 변환
if sw[idx] == 0:
sw[idx] = 1
else:
sw[idx] = 0
sw_num = int(input())
sw = list(map(int, input().split()))
hak_num = int(input())
for _ in range(hak_num):
sex, num = map(int, input().split())
if sex == 1: # 남자라면
for i in range(1, sw_num+1): # 스위치 비교 후 바꾸기
if i % num == 0:
onoff(i - 1)
else: # 여자라면
idx = num - 1
onoff(idx) # 변환
i = 1
while num - i >= 1 and num + i <= sw_num: # 양쪽 대칭 비교
if sw[idx + i] == sw[idx - i]: # 같다면 변환
onoff(idx + i)
onoff(idx - i)
else:
break
i += 1
for i in range(sw_num): # 출력 조건에 맞춰 출력
print(sw[i], end='')
if (i + 1) % 20 == 0:
print()
else:
print(' ', end='')
코드 해석
순회하며 스위치를 조건에 맞게 변환하면 된다.
스위치 의 대칭을 확인할 때 스위치의 밖으로 나가지 않게 막는것이 키포인트
체감 난이도: ★★☆☆☆
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1269번: 대칭 차집합 / 파이썬 (0) | 2025.01.18 |
---|---|
[백준] 28278번: 스택 2 / 파이썬 (0) | 2025.01.17 |
[백준] 1652번: 누울 자리를 찾아라 / 파이썬 (0) | 2025.01.15 |
[백준] 14606번: 피자 (Small) / 파이썬 (0) | 2025.01.14 |
[백준] 14501번: 퇴사 / 파이썬 (0) | 2025.01.13 |
Comments