def solution(arr):
answer = []
for num in arr:
if not answer: # answer가 비어있을 때는 answer[-1]이 안 먹힌다. (초기값 설정)
answer.append(num)
if num != answer[-1]: # 그 후 다른 값이 나올 때마다 추가
answer.append(num)
return answer
import math
def solution(progresses, speeds):
remain = []
for i, j in zip(progresses, speeds):
remain.append(math.ceil((100-i)/j)) # 100% 까지 남은 일수
temp = 0
answer = []
for i in remain:
if temp == 0 or i>temp:
temp = i
answer.append(1)
continue
else:
answer[-1] += 1
return answer
def solution(s):
stack = []
if s[0] == ')':
return False
for b in s:
if b == '(':
stack.append(s)
else:
if not stack:
return False
stack.pop()
if not stack:
return True
else:
return False
from collections import deque
def solution(priorities, location):
que = deque((v,i) for i,v in enumerate(priorities))
order = 0
while(que):
m = max(que)[0]
item = que.popleft()
if item[0] == m:
order += 1
if item[1] == location:
return order
else:
continue
else:
que.append(item)
[1,1,9,1,1,1]
location:0
으로 예시를 들어보면def solution(bridge_length, weight, truck_weights):
count = 0
trucks_on_bridge = [0] * bridge_length
while trucks_on_bridge:
count += 1
trucks_on_bridge.pop(0)
if len(truck_weights):
if sum(trucks_on_bridge) + truck_weights[0] <= weight:
trucks_on_bridge.append(truck_weights.pop(0))
else:
trucks_on_bridge.append(0)
return count
while len(trucks_on_bridge):
-> while trucks_on_bridge:
list_name.pop(0)
처럼 pop메소드에 인자로 0을 주면 큐 처럼 맨 앞에거를 빼준다. 이것도 처음 알았다..def solution(prices):
ans = [0] * len(prices)
for i in range(len(prices)-1):
cnt = 0
for j in range(i+1, len(prices)):
if prices[i] <= prices[j]:
cnt += 1
continue
else:
cnt += 1 # 바로 떨어질 경우(크거나 같은 값이 없을경우) default = 1
break
ans[i] = cnt
return ans
range(len(prices)-1)
인 이유는 마지막 원소는 어차피 0이니까총평 : 트럭 문제 빼고는 다 쉽다