Coding Test/프로그래머스(Python)
[프로그래머스/Python] Level 3_징검다리 건너기
syunze
2024. 3. 2. 17:32
📌문제 유형
2019 카카오 개발자 겨울 인턴십
📌문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
📌나의 문제풀이
- 정확성 모두 통과, 효율성 0
def solution(stones, k):
answer = 0
while True:
flag = 0
tmp = 0
# 1씩만 제거
for i in range(len(stones)):
if stones[i] > 0:
stones[i] -= 1
else:
if tmp == 0:
before = i
tmp += 1
else:
if i - 1 == before:
tmp += 1
else:
tmp = 1
if tmp == k:
flag = 1
break
before = i
if flag == 0:
answer += 1
else:
break
return answer
📌다른사람의 문제풀이
- 이진탐색 이용한 풀이
[프로그래머스] 징검다리 건너기(Python)
https://programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니
wiselog.tistory.com
def solution(stones, k):
left = 1
right = 200000000
while left <= right:
temp = stones.copy()
mid = (left + right) // 2
cnt = 0
for t in temp:
if t - mid <= 0:
cnt += 1
else:
cnt = 0
if cnt >= k:
break
if cnt >= k:
right = mid - 1
else:
left = mid + 1
return left
📌리뷰
- 이분탐색 코드
[알고리즘 / Python] 이분 탐색 / 이진 탐색 (Binary Search)
이분 탐색이란, 오름차순으로 정렬된 배열을 반복적으로 반으로 나누어 target이 선택될 때까지 탐색하는 알고리즘이다. 1. 이분 탐색의 조건 반드시 오름차순으로 정렬된 상태에서 시작해야 한
code-angie.tistory.com
728x90