풀이:
1. 특별한 풀이법은 없는듯. 그냥 2차원 배열에서의 데이터 조작만 하면 되는 문제.
def solution(board, moves):
answer = 0
bowl = list()
for move in moves:
for index in range(len(board)):
if board[index][move-1] != 0: # 빈 공간이 아니라면 바구니에 넣자
bowl.append(board[index][move-1])
board[index][move-1] = 0
break
if len(bowl) > 1:
if bowl[-1] == bowl[len(bowl)-2]: # 마지막과, 그 앞의 원소가 같다면
bowl.pop()
bowl.pop()
answer += 2
return answer
풀이:
1. 가장 앞에있는 기능이 완료될 때 그 뒤로도 완료된것이 있는지 확인하고 있다면 찾아서 pop(0)
def solution(progresses, speeds):
answer = list()
while(progresses):
count = 0
for index,(_,speed) in enumerate(zip(progresses,speeds)):
progresses[index] += speed
for item in progresses:
if item < 100:
break
count += 1
for _ in range(count):
progresses.pop(0)
speeds.pop(0)
if count > 0:
answer.append(count)
return answer
solution([93, 30, 55],[1, 30, 5])
다른사람풀이 :
1. time이라는 변수를 사용해 1일 2일 ,, 마다의 진행률을 구함
def solution(progresses, speeds):
print(progresses)
print(speeds)
answer = []
time = 0
count = 0
while len(progresses)> 0:
if (progresses[0] + time*speeds[0]) >= 100:
progresses.pop(0)
speeds.pop(0)
count += 1
else:
if count > 0:
answer.append(count)
count = 0
time += 1
answer.append(count)
return answer