1244번: 스위치 켜고 끄기 (acmicpc.net)
1244번: 스위치 켜고 끄기
첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩
www.acmicpc.net
나의 코드
num = int(input())
switch = list(map(int, input().split()))
student = int(input())
for _ in range(student):
gender, start = map(int, input().split())
if gender == 1: # 남학생이라면
for i in range(start-1, len(switch), start):
if switch[i] == 0:
switch[i] = 1
else:
switch[i] = 0
start -= 1
if gender == 2: # 여학생이라면
for j in range(1, len(switch)//2):
if 0 <= start - j and start + j <= len(switch)-1:
if switch[start - j] != switch[start + j]:
break
elif switch[start - j] == switch[start + j] == 0:
switch[start - j] = 1
switch[start + j] = 1
elif switch[start - j] == switch[start + j] == 1:
switch[start - j] = 0
switch[start + j] = 0
if switch[start] == 0:
switch[start] = 1
else:
switch[start] = 0
for k in range(0, len(switch), 20):
print(*switch[k:k+20])
결과

처음에 무슨 학생 수를 받는데 그만큼 범위를 정해야 되는데 그냥 2로 정해서 틀렸다.. 무슨 정신으로 문제를 푼건지...? 직관적으로 남학생일 때, 여학생일 때 어떻게 해야 되는지 자세히 설명이 되어있어서 코드를 짜기엔 무리가 없었다. 근데 시간은 여전히 오래 걸리는 듯....ㅜㅜ
'스터디 1일 1커밋' 카테고리의 다른 글
| 240306 [BOJ/백준] 4779. 칸토어 집합 (2) | 2024.03.06 |
|---|---|
| 240306 [BOJ/백준] 10815. 숫자카드 (1) | 2024.03.06 |
| 240303 [SWEA] 1974. 스도쿠 검증 (0) | 2024.03.03 |
| 240303 [BOJ/백준] 2578. 빙고 (0) | 2024.03.03 |
| 240302 [BOJ/백준] 2628. 종이자르기 (0) | 2024.03.02 |