배고픈 개발자 이야기

[2019 카카오 인턴십] 크레인 인형뽑기 게임 (feat. PYTHON) 본문

알고리즘 문제/PROGRAMMERS

[2019 카카오 인턴십] 크레인 인형뽑기 게임 (feat. PYTHON)

이융희 2020. 5. 8. 17:57
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/

 

2019 카카오 개발자 겨울 인턴십 코딩 테스트 문제 해설 – tech.kakao.com

“2019년 카카오 개발자 겨울 인턴십” 공개 채용을 위한 1차 코딩 테스트가 지난 2019년 11월 9일 오후 2시부터 6시까지 총 4시간에 걸쳐 진행되었습니다. ’19년 신입공채 1차 코딩 테스트 시에 7문�

tech.kakao.com

[문제풀러가기]

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

Comments