이 영역을 누르면 첫 페이지로 이동
자라자 블로그의 첫 페이지로 이동

자라자

페이지 맨 위로 올라가기

자라자

개발자를 준비하는 자라자의 블로그입니다.

[프로그래머스] 입국심사 파이썬 풀이

  • 2021.10.18 22:28
  • PS/Programmers

프로그래머스로고

[문제 링크]

https://programmers.co.kr/learn/courses/30/lessons/43238

[입출력 예]

n times return
6 [7, 10] 28

입출력 예 설명
가장 첫 두 사람은 바로 심사를 받으러 갑니다.

7분이 되었을 때, 첫 번째 심사대가 비고 3번째 사람이 심사를 받습니다.

10분이 되었을 때, 두 번째 심사대가 비고 4번째 사람이 심사를 받습니다.

14분이 되었을 때, 첫 번째 심사대가 비고 5번째 사람이 심사를 받습니다.

20분이 되었을 때, 두 번째 심사대가 비지만 6번째 사람이 그곳에서 심사를 받지 않고 1분을 더 기다린 후에 첫 번째 심사대에서 심사를 받으면 28분에 모든 사람의 심사가 끝납니다.

[소스코드]

def solution(n, times):
    #1. 10억이란 범위에서 이분탐색을 예측한다.
    #2. '정답'을 기준으로 이분탐색 범위를 구성한다.
    #즉 left,right,mid,answer는 모든 사람의 총 심사시간이다.
    #3. 최소 시간은 1분, 최대 시간은 가장 오래 걸리는 데서 모두 받는 n분이다.
    #최소시간을 좀 더 타이트하게 잡으려면 min(times)로 하면 된다.
    left, right = min(times), max(times)*n
    print(left,right)
    answer = None
    mid=None

    while(left<=right):
        people=0
        mid=(left+right)//2
        for time in times:
            if mid>time:
                #4. 전체 소요시간보다 처리시간이 작다면!!! 이 조건 놓치기 쉽다.
                #5. 그 시간으로 처리할 수 있는 사람만큼 합한다.
                #6. 사람 한 명이 어디 갈지 고르는 상황을 상상하지말고
                #모든 심사대가 꽉 찬 채로 가동된다고 생각하자.
                #전체시간(=제한시간) 안에 처리할 수 있는 사람 수가 기준을 만족하는지
                #아닌 지를 판단한다. 만족하면 제한시간을 좀 더 타이트하게
                #만족 못하면 제한시간을 후하게
                people+=mid//time

        if people>=n:
            answer=mid
            right = mid -1

        else:
            left = mid +1

    return answer

'PS > Programmers' 카테고리의 다른 글

[프로그래머스] 다단계 칫솔 판매 파이썬  (0) 2021.11.11
프로그래머스_정수삼각형  (0) 2021.10.20
프로그래머스_추석트래픽  (0) 2021.10.14
프로그래머스_표_편집  (0) 2021.09.09
프로그래머스_N개의최소공배수_파이썬  (0) 2021.09.09

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [프로그래머스] 다단계 칫솔 판매 파이썬

    [프로그래머스] 다단계 칫솔 판매 파이썬

    2021.11.11
  • 프로그래머스_정수삼각형

    프로그래머스_정수삼각형

    2021.10.20
  • 프로그래머스_추석트래픽

    프로그래머스_추석트래픽

    2021.10.14
  • 프로그래머스_표_편집

    프로그래머스_표_편집

    2021.09.09
다른 글 더 둘러보기

정보

자라자 블로그의 첫 페이지로 이동

자라자

  • 자라자의 첫 페이지로 이동

검색

메뉴

  • 🏠 HOME
  • 💡 ABOUT
  • 💻 GITHUB

카테고리

  • 분류 전체보기 (91)
    • Tech Note (3)
    • Dev Log (11)
    • Study Log (11)
    • Settings (3)
    • PS (53)
      • Programmers (21)
      • BOJ (32)
    • Diary (10)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 리액트
  • ㅣ
  • 공식문서읽기

나의 외부 링크

정보

자라자의 자라자

자라자

자라자

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © 자라자. Designed by Fraccino.

티스토리툴바