
문제
Baekjoon 27971: 강아지는 많을수록 좋다
- 설명: 호무라가 강아지를 한번에
A,B마리를 생성할 수 있고 특정 구간의 강아지 수를 만족한다면 모든 강아지는 사라진다. 이떄N마리의 강아지를 생성하기 위한 최소 마법의 수를 구하여라
풀이
- 닫힌 구간을 미리 모두 저장해두고
A,B마리를 생성해주며 시뮬레이션 해준다. - 이떄 가장 최소 마법의 수를 구하는 문제이기 떄문에 BFS를 사용하여 문제를 풀어준다.
오늘의 회고
True를False로 두는 둥 잔실수가 많았다. 더 노력하자!
Code
# Baekjoon27971.py
import sys
input = sys.stdin.readline
from collections import deque
n, m, a, b = map(int, input().split())
delete = [False for _ in range(100_001)]
for _ in range(m):
l, r = map(int, input().split())
for i in range(l, r + 1):
delete[i] = True
q = deque()
visited = [False for _ in range(100_001)]
q.append((0, 0))
visited[0] = True
ans = -1
while q:
curr, time = q.popleft()
if curr == n:
ans = time
break
next_dog = curr + a
if next_dog <= 100_000 and (not visited[next_dog]) and (not delete[next_dog]):
visited[next_dog] = True
q.append((next_dog, time + 1))
next_dog = curr + b
if next_dog <= 100_000 and (not visited[next_dog]) and (not delete[next_dog]):
visited[next_dog] = True
q.append((next_dog, time + 1))
print(ans)
필수 해시태그: # #코딩테스트준비 # # #
'Problem Solving > 항해99' 카테고리의 다른 글
| 99클럽 코테 스터디 20일차 TIL + Backtracking (0) | 2025.04.28 |
|---|---|
| 99클럽 코테 스터디 19일차 TIL + BFS (0) | 2025.04.24 |
| 99클럽 코테 스터디 17일차 TIL + Tree (0) | 2025.04.23 |
| 99클럽 코테 스터디 16일차 TIL + 구현 (0) | 2025.04.21 |
| 99클럽 코테 스터디 15일차 TIL + DP (0) | 2025.04.21 |