백준 1561(파이썬) - 놀이공원
resilient
·2021. 4. 10. 20:39
728x90
반응형
1561번: 놀이 공원
첫째 줄에 N(1 ≤ N ≤ 2,000,000,000)과 M(1 ≤ M ≤ 10,000)이 빈칸을 사이에 두고 주어진다. 둘째 줄에는 각 놀이기구의 운행 시간을 나타내는 M개의 자연수가 순서대로 주어진다. 운행 시간은 1 이상 30
www.acmicpc.net
import sys
input = sys.stdin.readline
n,m = map(int,input().split())
data = list(map(int,input().split()))
start,end = 0,60000000000
time = 0
if n<m:
print(n)
else:
while start<=end:
mid = (start+end)//2
cnt = m #t가 0초에는 다타고시작
for i in range(m):
cnt += mid//data[i]
if cnt>=n: #애들많을때
time = mid
end = mid-1
else:#애들 늘릴때
start = mid+1
#time 보다 1분전 탄애들수
ans = m
for i in range(m):
ans += (time-1)//data[i]
#time에 탄 애들cnt
for i in range(m):
if time % data[i] == 0:
ans +=1
if ans == n:
print(i+1)
break
end 값을 60000000000을 안하면 에러가나고
여기서 while안에 있는 for문안쪽에 if 문을 넣은 줄 몰라서 한참 삽질을 했다..
반응형
'자료구조 & 알고리즘 > 백준(Baekjoon)' 카테고리의 다른 글
백준2579(파이썬) - 계단오르기 (0) | 2021.04.29 |
---|---|
백준1697(파이썬) - 숨바꼭질 (0) | 2021.04.27 |
백준 1939(파이썬) - 중량제한 (0) | 2021.04.05 |
백준 2146(파이썬) - 다리만들기 (0) | 2021.04.05 |
백준 1916(파이썬) - 최소비용구하기 (0) | 2021.04.01 |