Early Riser
생각정리
Early Riser
전체 방문자
오늘
어제
  • 분류 전체보기 (127)
    • JS (19)
    • React (33)
    • Web (2)
    • Library, Framework (14)
    • Algorithm (40)
    • Computer Science (3)
    • 회고 (3)
    • AI (13)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

인기 글

태그

  • local minima
  • 논문리뷰
  • useState
  • 부스트캠프 합격 후기
  • javascript
  • boosting
  • 부스트캠프 9기
  • 손실함수
  • dfs
  • 딥러닝
  • 프로그래머스
  • global minima
  • 알고리즘
  • 완전탐색
  • RNN
  • BFS
  • 백준
  • useEffect
  • lightgbm
  • 부스트캠프 합격
  • 밑바닥
  • 자바스크립트
  • js
  • 파이썬
  • 오늘의불경
  • react
  • 백트래킹
  • LGBM
  • 구현
  • 비동기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Early Riser

생각정리

백준 1654번: 랜선 자르기 (파이썬, 이분탐색)
Algorithm

백준 1654번: 랜선 자르기 (파이썬, 이분탐색)

2022. 8. 22. 15:39

랜선을 잘라서 N개의 랜선을 만들어야 한다. 시작값을 1로 설정하고, N이 1일때는 랜선중에 가장 큰값을 써야하기때문에 max(랜선)을 끝값으로 설정하였다.

 

그 후 입력으로 받은 랜선들을 각각 중간값으로 나누어 그 몫을 더하고, 그 값이 N보다 크면 시작값을 중간값으로 하여 몫들의 합이 더 작아지게 한다.

import sys

K, N = map(int, sys.stdin.readline().split())
wires = []
for i in range(K):
    wires.append(int(sys.stdin.readline()))

start, end = 1, max(wires)

while start <= end:
    cnt = 0
    mid = (start+end) // 2
    for wire in wires:
        cnt += (wire // mid)
    if cnt >= N:
        start = mid + 1
    else:
        end = mid - 1

print(end)

'Algorithm' 카테고리의 다른 글

백준 2667번: 단지번호 붙이기 (파이썬, BFS)  (0) 2022.08.22
백준 7576번: 토마토 (파이썬, BFS)  (0) 2022.08.22
백준 1931번: 회의실 배정 (파이썬, 그리디 알고리즘)  (0) 2022.08.22
백준 1198번: 삼각형으로 자르기 (파이썬, 완전탐색)  (0) 2022.08.22
백준 14786번: Ax+Bsin(x)=C ② (파이썬, 이분탐색)  (0) 2022.08.22
    'Algorithm' 카테고리의 다른 글
    • 백준 2667번: 단지번호 붙이기 (파이썬, BFS)
    • 백준 7576번: 토마토 (파이썬, BFS)
    • 백준 1931번: 회의실 배정 (파이썬, 그리디 알고리즘)
    • 백준 1198번: 삼각형으로 자르기 (파이썬, 완전탐색)
    Early Riser
    Early Riser
    2년차 프론트엔드 개발자입니다. https://github.com/EarlyRiser42

    티스토리툴바