Link : programmers.co.kr/learn/courses/30/lessons/64062
Python (성공 소스)
더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
def calcZero(arr, m):
max_zero = 0
zero = 0
for i in range(len(arr)):
if arr[i] - m <= 0:
arr[i] = 0
zero += 1
if zero > max_zero:
max_zero = zero
else:
zero = 0
return max_zero
def solution(stones, k):
s = min(stones)
e = max(stones)
while s < e:
m = (s + e) // 2
zero_cnt = calcZero(stones[:], m)
if zero_cnt >= k:
e = m
elif zero_cnt < k:
s = m + 1
return s
|
cs |
Python (실패 소스)
더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
def solution(stones, k):
result = 0
while True:
for i in range(len(stones)):
if stones[i] - 1 <= 0:
stones[i] = 0
else:
stones[i] -= 1
zero = 0
result += 1
for i in range(len(stones)):
if stones[i] == 0:
zero += 1
if zero >= k:
return result
else:
zero = 0
|
cs |
FeedBack
- 성공 소스는 이분탐색으로 수행하였고 실패소스는 완전 탐색으로 진행하였습니다.
cjw.git@gmail.com
'알고리즘 > 소스코드' 카테고리의 다른 글
KOREATECH 1041: 최소 이동거리 구하기 - 2차원 (0) | 2021.03.02 |
---|---|
ALGOSPOT BOARDCOVER: 게임판 덮기 (0) | 2021.02.20 |
PROGRAMMERS 60059: 자물쇠와 열쇠 (0) | 2021.01.25 |
KOREATECH 1074: 유일한 수 두개 (0) | 2021.01.23 |
KOREATECH 1046: 빠른 길 찾기 (0) | 2021.01.22 |
댓글