배고픈 개발자 이야기
[2019 카카오 인턴십] 크레인 인형뽑기 게임 (feat. PYTHON) 본문
728x90
def solution(board, moves):
tmp, answer = [], 0
while len(moves):
for i in range(len(board)):
if board[i][moves[0]-1] != 0: # 인형이 있는 경우
tmp.append(board[i][moves[0]-1])
board[i][moves[0]-1] = 0
moves.remove(moves[0])
break
elif i == len(board)-1:
moves.remove(moves[0]) # 인형이 없는 경우
if tmp == []: return 0
while True:
before = answer
for i, _ in enumerate(tmp[:len(tmp)-1]):
if tmp[i] == tmp[i+1]:
del tmp[i+1]
del tmp[i]
answer += 2
break
if before == answer:
break #더 이상 터질게 없으면
return answer
풀이
1. 먼저 크레인이 움지이는 만큼 루틴을 돌면서 터진인형을 고려하지 않고 인형을 쌓는다.
2. 쌓인 인형의 순서대로 터진 개수를 카운팅한다. 이때 remove대신 del을 사용하여 해당 인덱스의 인형을 제거하면서 연쇄적으로 터질 수 있는 상황을 고려한다.
문제해설 https://tech.kakao.com/2020/04/01/2019-internship-test/
'알고리즘 문제 > PROGRAMMERS' 카테고리의 다른 글
[2019 카카오 인턴십] 호텔 방 배정 (feat. PYTHON) (0) | 2020.05.08 |
---|---|
[2019 카카오 인턴십] 불량 사용자 (feat. PYTHON) (0) | 2020.05.08 |
[2019 카카오 인턴십] 튜플 (feat. PYTHON) (0) | 2020.05.08 |
네트워크 (feat.PYTHON) (0) | 2019.09.22 |
5. 길찾기 게임 (feat.C++, 2018 카카오 코딩테스트) (0) | 2019.09.19 |
Comments