Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 학습
- 딥러닝 음성 합성
- 노래합성
- 딥러닝 보코더
- you only look once
- 음성 합성
- korean tts
- 한국어 음성 합성
- text-to-speech
- YOLO
- 딥러닝
- melgan
- 윈도우
- waveglow
- DCTTS
- tacotron
- singing voice synthesis
- Vocoder
- 한국어 tts
- 타코트론
- TTS
- deep voice
- 트레이닝
- 보코더
Archives
- Today
- Total
chldkato
백준 1654 랜선 자르기 (파이썬) 본문
https://www.acmicpc.net/problem/1654
1654번: 랜선 자르기
첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그
www.acmicpc.net
1. 이분탐색을 위해 left를 0, right를 입력받은 랜선 길이의 최대값으로 설정한다
2. 만일 mid가 0이면 (left가 0, right가 1일 때) 길이 1로 자르는 경우밖에 없으므로 답을 1로 저장하고 break한다
3. 각 랜선을 mid로 나눴을 때의 몫이 mid 길이로 자를 때 얻을 수 있는 랜선의 개수가 된다
개수가 n보다 크거나 같으면 ans를 갱신한다
import sys
input = sys.stdin.readline
def f(mid):
cnt = 0
for i in range(len(a)):
cnt += a[i] // mid
return cnt
k, n = map(int, input().split())
a = []
for _ in range(k):
a.append(int(input()))
left, right, ans = 0, max(a), 0
while left <= right:
mid = (left + right) // 2
if mid == 0:
ans = 1
break
cnt = f(mid)
if cnt >= n:
ans = max(ans, mid)
left = mid + 1
else:
right = mid - 1
print(ans)
'백준' 카테고리의 다른 글
백준 19235 모노미노도미노 (파이썬) (0) | 2020.06.11 |
---|---|
백준 19236 청소년 상어 (파이썬) (0) | 2020.06.08 |
백준 10448 유레카 이론 (파이썬) (0) | 2020.06.05 |
백준 1748 수 이어 쓰기 1 (파이썬) (0) | 2020.06.05 |
백준 1107 리모컨 (파이썬) (2) | 2020.06.04 |
Comments