정리

백준 1654번: 랜선 자르기 본문

Programming/백준 BOJ

백준 1654번: 랜선 자르기

H.J.Park 2021. 1. 5. 02:44

백준 1654번: 랜선 자르기

 

1654번: 랜선 자르기

집에서 시간을 보내던 오영식은 박성원의 부름을 받고 급히 달려왔다. 박성원이 캠프 때 쓸 N개의 랜선을 만들어야 하는데 너무 바빠서 영식이에게 도움을 청했다.

www.acmicpc.net

- 1789번: 수들의 합 문제와 매우 유사한 문제이다. 마찬가지로 이분탐색으로 접근하면 된다.

  • start = 0, end = 2147483648(2^31 - 1) 으로 초기화한다. start가 end보다 작거나 같을 때까지 while문을 돌린다
  • mid = (start + end) // 2
  • rep은 각 랜선을 mid 길이만큼 잘랐을 때 나오는 랜선의 개수이다. for문을 통해서 long 리스트에 저장된 랜선들을 mid로 나눴을 때의 몫을 구한다
  • rep이 n보다 크거나 같으면 mid가 작다는 것을 의미하므로 start = mid + 1 을 한다
  • rep이 n보다 작으면 mid가 크다는 것을 의미하므로 end = mid - 1을 한다

아래는 파이썬 코드이다

 

'Programming > 백준 BOJ' 카테고리의 다른 글

백준 1339번: 단어 수학  (0) 2021.01.11
백준 1251번: 단어 나누기  (0) 2021.01.11
백준 1789번: 수들의 합  (0) 2020.12.25
백준 2493번: 탑  (0) 2020.10.12
백준 14488번: 준오는 급식충이야!!  (0) 2020.09.30
Comments