[programmers] 프로그래머스 징검다리 건너기
(Python)
(글쓴날 : 2020.05.18)
* programmers, 프로그래머스 문제 Python 언어 풀이입니다.
* 소스 코드의 저작권은 글쓴이에게 있습니다.
프로그래머스 징검다리 건너기
1) 문제
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/64062
2) 풀이 과정
* 시간 복잡도 : O(n log n)
한번 밟을 때마다 디딤돌에 적혀있는 숫자가 1씩 줄어드는 징검다리가 주어지고, 디딤돌의 숫자가 0이 되면 다음 디딤돌로 여러 칸을 건너뛸 수 있지만, 0이 아닐 경우 건너뛸 수 없을 때 징검다리를 건널 수 있는 횟수를 구하는 문제입니다.
단, 한 번에 건너 뛸 수 있는 디딤돌은 최대 k개 입니다.
저의 경우, 이분 탐색을 적용하였고, Python을 사용했습니다.
디딤돌에 적혀있는 숫자의 최대 크기가 200,000,000이므로, 이분 탐색의 최댓값을 200,000,000으로 잡아 이분 탐색하는 mid 값만큼 디딤돌들의 숫자를 빼가며 k만큼 건너뛰어 징검다리를 건널 수 있는지의 여부를 체크해 문제를 해결했습니다.
3) 코드
* Python 코드
'Deprecated' 카테고리의 다른 글
[ALGOSPOT] 알고스팟 QUADTREE 쿼드 트리 뒤집기(Python) (0) | 2020.05.22 |
---|---|
[ALGOSPOT] 알고스팟 BOARDCOVER 게임판 덮기(Python) (0) | 2020.05.21 |
[programmers] 프로그래머스 호텔 방 배정(Python) (0) | 2020.05.18 |
[Baekjoon Online Judge] 백준 2170번 선 긋기(Python) (0) | 2020.05.17 |
[Algorithm] 유니온 파인드 (0) | 2020.05.16 |