CodingTest/Baekjoon
[baekjoon] 백준 1244번(파이썬): 스위치 켜고 끄기
JunJangE
2022. 4. 14. 20:51
문제
1244번: 스위치 켜고 끄기
첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩
www.acmicpc.net
알고리즘
- 반복문을 통해 스위치 상태를 변경한다.
- 남학생의 경우와 여학생의 경우를 나누어 조건에 맞게 스위치를 변경해준다.
- 스위치를 변경 후 상태를 20개씩 출력한다.
코드
import sys
n = int(sys.stdin.readline())
state = ["제로"] + list(map(int, sys.stdin.readline().split()))
p = int(sys.stdin.readline())
# 반복문을 통해 스위치 상태를 변경
for i in range(p):
# 성별, 학생이 받은 수
sex, idx = map(int, sys.stdin.readline().split())
# 남학생
if sex == 1:
plus = idx
while plus <= n:
state[plus] = abs(state[plus] - 1)
plus += idx
# 여학생
else:
total = min(n + 1 - idx, idx)
state[idx] = abs(state[idx] - 1)
for j in range(total):
if state[idx - j] == state[idx + j]:
state[idx - j] = abs(state[idx - j] - 1)
state[idx + j] = abs(state[idx + j] - 1)
else:
break
# 20개씩 출력
for i in range(1, n + 1):
print(state[i], end=" ")
if i % 20 == 0:
print("")
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com