출처 : https://programmers.co.kr/learn/courses/30/lessons/64061
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 방법
각 열(=col)을 딕셔너리에 리스트 형태로 저장해서 pop을 하게 되면,
어떤 인형이 뽑히는지를 간단하게 구현할 수 있다.
Code
def solution(board, moves):
## 딕셔너리
n = 1
dic = {}
for next in map(list, zip(*board)):
for i in range(len(next)):
if next[i]: next = next[i:]; break
dic[n] = next[::-1]
n += 1
## 바구니에 옮겨담는 과정
basket = []
result = 0
for pick in moves:
if dic[pick]:
x = dic[pick].pop()
if not basket: basket.append(x)
else:
if basket[-1] == x: # 연속 2개 같은 인형이라면
basket.pop()
result += 2
else: # 다른 인형이라면
basket.append(x)
return result
|
cs |
'알고리즘 > [Python] 프로그래머스' 카테고리의 다른 글
[Python/프로그래머스/2020 KAKAO BLIND RECRUITMENT] 문자열 압축 (0) | 2020.05.09 |
---|---|
[Python/프로그래머스/2019 카카오 개발자 겨울 인턴십] 튜플 (0) | 2020.05.08 |
(Python) [2019카카오공채] 후보키 (0) | 2020.03.06 |
(Python) [2020카카오공채] 외벽 점검 (0) | 2020.01.22 |
(Python) [2020카카오공채] 자물쇠와 열쇠 (0) | 2020.01.16 |