공부하고 기록하는, 경제학과 출신 개발자의 노트

프로그래밍/코딩테스트 문제풀이

[Python] 프로그래머스. 2019 카카오 겨울 인턴 recruit - 크레인 인형뽑기 게임 (Level 2)

inspirit941 2020. 4. 1. 18:27
반응형

https://programmers.co.kr/learn/courses/30/lessons/64061

 

프로그래머스

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

programmers.co.kr

2019년에 4solve 탈락, 최근에 프로그래머스에서 다시 열어 준 시험에서는 3solve했던 문제들.

이 문제는 어렵지 않다. board의 각 column별로 수직 탐색하는 대신, 이차원 배열의 column에 해당하는 부분을 row가 되도록 변형하면 된다.

 

 

# 인형이 있는지 탐색하는 함수
def get_doll(idx, board):
for i in range(len(board[idx-1])):
# 해당 인형이 있으면, 인형의 위치 값을 0으로 수정하고
# 그 인형의 값을 리턴한다.
if board[idx-1][i] != 0:
value = board[idx-1][i]
board[idx-1][i] = 0
return value
return None
def solution(board, moves):
board = list(map(list,zip(*board)))
stack = []
answer = 0
for idx in moves:
value = get_doll(idx, board)
if value is not None:
if not stack:
stack.append(value)
elif stack[-1] == value:
answer += 2
stack.pop()
else:
stack.append(value)
return answer
반응형