728x90
문제
6246번: 풍선 놀이
매년 가을 대전에서 열리는 대학생 프로그래밍 대회의 묘미 중 하나는 풍선 놀이이다. 시상식에서 스코어보드 공개를 기다리다가 심심해지면, 주위에 있는 풍선을 엮어서, 대회장을 가로지르는
www.acmicpc.net

풀이
1. 먼저 사용자로부터 슬롯의 총 개수 N과 풍선을 꽂는 횟수 Q를 입력받습니다.
2. 모든 슬롯을 처음에는 비어 있는 상태로 설정합니다.
3. 각 풍선 꽂는 횟수에 대해 시작점 L과 간격 I를 입력받아, 해당 위치에 풍선을 꽂고 해당 슬롯을 '채워진 상태'로 표시합니다.
4. 마지막으로 모든 슬롯을 순회하여 비어 있는 슬롯의 수를 세고 출력합니다.
import sys
input = sys.stdin.readline
# 슬롯 수 N과 풍선을 꽂는 횟수 Q를 입력받습니다.
N, Q = map(int, input().split())
# 모든 슬롯을 비어있는 상태로 초기화합니다 (True는 비어있음을 나타냅니다).
slots = [True] * (N + 1) # 인덱스 0을 사용하지 않기 위해 N+1 크기로 생성
# Q번에 걸쳐 풍선을 꽂는 방법을 입력받아 처리합니다.
for _ in range(Q):
L, I = map(int, input().split())
for j in range(L, N + 1, I):
slots[j] = False # 풍선을 꽂은 슬롯은 False로 표시
# 비어있는 슬롯의 개수를 계산합니다.
empty_slots = sum(slots) - 1 # 인덱스 0은 사용하지 않으므로 -1을 해줍니다.
# 비어있는 슬롯의 개수를 출력합니다.
print(empty_slots)728x90