[파이썬/python] 백준 14627- 파닭파닭

2024. 9. 7. 22:11·알고리즘
반응형

 

문제

https://www.acmicpc.net/problem/14627


문제 설명

  1. 길이가 일정하지 않은 파가 S개 존재한다.
  2. 파닭을 만드는데 들어가는 파의 양은 일정하다.
  3. 최대한 많은 양의 파를 넣어야 한다.
  4. 모든 파닭을 만들고 남은 파를 구한다.

풀이

파의 길이 L은 $(1 ≤ L ≤ 10^9)$이다. 따라서 완전 탐색으로 전체를 탐색하기에는 시간이 부족하다. 따라서 이분 탐색을 통해 하나당 넣을 수 있는 최대 파의 길이를 탐색했다.

 

  1. start, end의 값을 초기화한다.
  2. 각각의 파를 mid값으로 나눈다. -> mid 길이의 파로 현재 가지고 있는 파로 몇개의 파닭을 만들 수 있는지 구한다.
  3. mid의 길이로 주문받은 파닭을 충분히 만들 수 있으면 start = mid, 그럴 수 없다면 end = mid로 변경한다.
  4. 이분탐색이 끝나면 start가 최댓값이므로, 전체 파의 양 - (start * 주문받은 파닭의 수) = 남은 파의 양

코드

import sys
input = sys.stdin.readline

S,C = map(int,input().split())
onions = []
for i in range(S):
    onions.append(int(input()))
s = 0
e = max(onions)+1

while s+1 < e:
    mid = (s + e) // 2
    cnt = 0
    for onion in onions:
        cnt+= (onion // mid)
    if cnt >= C:
        s = mid
    else:
        e = mid

res = sum(onions)-C*s
print(res)

시간복잡도

  • 이분탐색의 시간복잡도 = $O(\log_2n)$
  • 파의 개수만큼 반복 = $O(10^6)$
  • 총 시간복잡도는 약 $O(10^6*\log_2n)$
  • 파의 길이가 $10^9$일 때 최악이므로 $10^9$ = $2^{30}$
  • 약 $O(10^6 * log_22^{30})$ = $O(3* 10^7)$의 시간이 걸린다.
반응형

'알고리즘' 카테고리의 다른 글

[파이썬/python] 백준 1005 - ACM Craft  (1) 2024.09.08
[파이썬/python] 백준 2785- 체인  (0) 2024.09.07
[파이썬/python] 백준 17129 - 윌리암슨수액빨이딱따구리가 정보섬에 올라온 이유  (0) 2024.09.07
[파이썬/python] 백준 11578 - 팀원 모집  (0) 2024.09.07
[파이썬/python] 백준 16493 - 최대 페이지 수  (0) 2024.09.07
'알고리즘' 카테고리의 다른 글
  • [파이썬/python] 백준 1005 - ACM Craft
  • [파이썬/python] 백준 2785- 체인
  • [파이썬/python] 백준 17129 - 윌리암슨수액빨이딱따구리가 정보섬에 올라온 이유
  • [파이썬/python] 백준 11578 - 팀원 모집
개골개굴
개골개굴
굶고 코딩하기
  • 개골개굴
    밥스토리
    개골개굴
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (144)
      • 알고리즘 (124)
      • Java (2)
      • 자기개발 (18)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    python
    작심삼일 챌린지
    알고리즘
    파이썬
    컴퓨터 구조
    java
    컴퓨터구조
    OS
    인프런
    SMTP
    async
    completablefuture
    백준
    Redis
    springboot
  • 최근 댓글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
개골개굴
[파이썬/python] 백준 14627- 파닭파닭
상단으로

티스토리툴바