[백준/Python] 2805. 나무 자르기

2024. 12. 30. 10:34·CODING_TEST

※ 문제

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

※ 문제 유형

이분 탐색, 매개 변수 탐색 (SILVER_2)

※ 나의 풀이

  • 이분 탐색으로 문제 해결
  • N, M의 입력 제한이 범위가 크므로, 시간 복잡도 고려 필수
import sys

N, M = map(int, sys.stdin.readline().split())

trees = list(map(int, sys.stdin.readline().split()))
trees.sort()
low, high = 1, trees[-1] #max(trees) - 시간 초과

ans = 0
while low <= high:
    mid = (low + high) // 2

    total = 0

    for tree in trees:
        if tree > mid:
            total += tree - mid

    if total >= M:
        ans = mid
        low = mid + 1
    else:
        high = mid - 1
print(ans)

 

※ 주의 사항

  • low 는 최소한의 값인 1
  • high 최대 값
    • max(trees)로 할 경우, 시간 복잡도 O(N)
    • trees.sort() 후 trees[-1]을 통하여 정렬된 값들 중 마지막 값(최대 값)을 가져오는 경우, 시간 복잡도 O(N log N) (정렬) + O(1) (리스트 값 호출) = O(N log N)
따라서 max(trees)를 사용하는 경우보다 trees.sort() 후 trees[-1]을 사용하는 경우가 이 문제에서 더 적합하며, 시간 복잡도 측면에서도 효율적입니다

 

'CODING_TEST' 카테고리의 다른 글

[백준/Python] 1003. 피보나치 함수  (1) 2024.12.31
[백준/Python] 21318. 피아노 체조  (0) 2024.12.30
[백준/Python] 14916. 거스름돈  (0) 2024.12.29
[백준/Python] 9095. 1, 2, 3 더하기  (1) 2024.12.26
[백준/Python] 1463. 1로 만들기  (1) 2024.12.26
'CODING_TEST' 카테고리의 다른 글
  • [백준/Python] 1003. 피보나치 함수
  • [백준/Python] 21318. 피아노 체조
  • [백준/Python] 14916. 거스름돈
  • [백준/Python] 9095. 1, 2, 3 더하기
YAHO_STUDY
YAHO_STUDY
DATA&AI_study.zip
  • YAHO_STUDY
    YAHO_CODE
    YAHO_STUDY
  • 전체
    오늘
    어제
    • 분류 전체보기 (57)
      • Paper Review (0)
      • SQL (16)
      • CODING_TEST (21)
      • Time Series (0)
      • DL (20)
        • NLP (5)
        • LLM&RAG (15)
        • Recommender System (0)
      • 최적화 (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    Programmers
    한 권으로 끝내는 실전 llm 파인튜닝
    boj
    fine-tuning
    graph
    quantization
    qlora
    hash
    DP
    runpod
    PEFT
    pagedattention
    MySQL
    coding_test
    Gemma
    양자화
    SQL
    prompt-tuning
    Lora
    RNN
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
YAHO_STUDY
[백준/Python] 2805. 나무 자르기
상단으로

티스토리툴바