https://school.programmers.co.kr/learn/courses/30/lessons/64061
내가 생각한 방법은 처음엔 for문을 차례대로 돌면서 값이 0이 아닐 때 바구니에 추가하려고 했지만
매 반복문마다 0이 아닌 인덱스를 찾는게 비효율적이라고 느껴져서 아예 처음부터 0이 아닌 인덱스를 찾아놓고 시작했다.
어차피 인형들은 밑에서부터 쌓여있기 때문에 0이 아닌 인덱스를 찾아놓으면 그 이후 인덱스는 모두 0이 아님!
0이 아닌 가장 작은 인덱스 리스트를 구해놓고 moves를 돌리면서 바구니에 하나씩 추가했다.
이때 바구니의 가장 마지막 원소 두개가 같은 원소이면 pop()을 해주고 정답에 2를 추가한다.
# 프로그래머스 64061: 크레인 인형뽑기 게임 (2019 카카오 개발자 겨울 인턴십)
def solution(board, moves):
answer = 0
temp = [0 for i in range(len(board))]
basket = []
for i in range(len(board)):
for j in range(len(board[0])):
if board[j][i] != 0:
temp[i] = j
break
for i in moves:
if temp[i-1] < len(board[0]):
basket.append(board[temp[i-1]][i-1])
temp[i-1] += 1
if len(basket) > 1 and basket[-2] == basket[-1]:
basket.pop()
basket.pop()
answer += 2
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 | Lv2] 귤 고르기 (Python) (0) | 2023.01.31 |
---|---|
[프로그래머스 | Lv1] 실패율 (Python) - 2019 KAKAO BLIND RECRUITMENT (0) | 2023.01.26 |
[프로그래머스 | Lv1] 키패드 누르기 (Python) - 2020 카카오 인턴십 (0) | 2023.01.14 |
[프로그래머스 | Lv1] 숫자 짝꿍 (Python) (0) | 2023.01.11 |
[프로그래머스 | Lv1] 개인정보 수집 유효기간 (Python) - 2023 KAKAO BLIND RECRUITMENT (0) | 2023.01.07 |