프로그래머스(이진탐색) 입국심사 문제 with Python
2021. 2. 23. 01:13ㆍ코딩테스트 준비
반응형
이진탐색 기본 프로세스
left,right로 결과값에 대한 최소값과 최대값을 변수로 두고
반복(보통 while)구문을 통하여 left,right에 대한 mid 중간값을 구하고
mid값과 target값의 일치 여부를 확인하여
결과값을 도출해낸다.
해당 문제는 문제를 잘 이해하고 한 가지 부분만 캐치해내면 쉽게 풀어낼 수 있는 문제이다.
이 문제의 핵심은 심사대에 있는 심사위원들이 정해진 시간마다 심사를 수행할 수 있다는 것이고,
이 말은 즉 해당 시간대의 배수의 시간이 되면 +1씩 사람이 증가할 수 있다는 부분이다.
이 부분만 알아낸다면 바로 이진탐색 알고리즘에 적용하여 문제를 풀 수 있다.
위와 같이 기존 이진탐색 알고리즘과 동일하게 left,right라는 변수값을 두고,
최소,최대값을 설정하고 해당 기준의 mid값을 정하고 for문에서와 같이
해당 시간대로 나눈 몫이 결국에는 해당 구역에서 심사받을 수 있는 사람의 수가 된다.
이를 모두 더하게 되면 이 값을 target인 n과 비교하여 존재하는 경우,
해당값을 answer값으로 두고 while문을 반복해준다.
이후, left,right 조건에 의하여 while문을 빠져나오고 결과값이 도출되게 된다
반응형
'코딩테스트 준비' 카테고리의 다른 글
프로그래머스(단어변환) with python (0) | 2021.02.24 |
---|---|
프로그래머스 (징검다리) with python (0) | 2021.02.23 |
자바 문법 +JDBC (0) | 2021.01.23 |
자바 문법 정리(~클래스,상속) (0) | 2021.01.23 |
정렬 알고리즘(백준 10989번) (0) | 2021.01.15 |