-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path기능개발.py
108 lines (82 loc) · 2.23 KB
/
기능개발.py
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
'''
#2019.10.27
def solution(progresses, speeds):
days = []
for i in range(0, len(progresses)):
days.append(0)
for i in range(0, len(progresses)):
while progresses[i] < 100:
progresses[i] = progresses[i] + speeds[i]
days[i] += 1
answer = []
answerr= []
first = 0
for i in range(0, len(days)):
if first < days[i]:
answer.append(days[:i])
first = days[i]
for i in range(0, len(answer)-1):
answerr.append(len(answer[i+1]) - len(answer[i]))
answerr.append(len(days) - len(answer[-1]))
return answerr
'''
'''
#2020.02.23
import math
def solution(progresses, speeds):
stack = []
answer = []
for i in range(0, len(speeds)):
stack.append(math.ceil((100 - progresses[i])/speeds[i]))
pin = 0
for i in range(0, len(stack)):
if stack[i] > stack[pin]:
answer.append(i - pin)
pin = i
answer.append(len(stack) - pin)
return answer
'''
"""
#2020.04.05
#코드가 점점 간결해진다. 처음 풀이와 비교해 보면 꽤 많이 성장한 것같다.
import math
def solution(progresses, speeds):
arr = [math.ceil(a/b) for a,b in zip(list(map(lambda x: 100-x,progresses)),speeds)]
answer = []
pin = 0
for i in range(0, len(arr)):
if arr[i] > arr[pin]:
answer.append(i - pin)
pin = i
answer.append(len(arr) - pin)
return answer
"""
'''
#2020.06.21
import math
def solution(progresses, speeds):
stack = [math.ceil((100 - progresses[i]) / speeds[i]) for i in range(len(progresses))]
answer = []
num = stack.pop(0)
cnt = 1
while stack:
if num < stack[0]:
num = stack.pop(0)
answer.append(cnt)
cnt = 1
else:
cnt += 1
stack.pop(0)
answer.append(cnt)
return answer
'''
#2022.11.16
import math
from collections import Counter
def solution(progresses, speeds):
days = 0
lists = [math.ceil((100-a)/b) for a,b in zip(progresses, speeds)]
for i in range(1, len(lists)):
if lists[i-1] > lists[i]:
lists[i] = lists[i-1]
return list(Counter(lists).values())