크레인 인형뽑기 게임
문제는 제목 링크에서 확인이 가능하며, 입출력의 예시는 아래와 같다.
#Input
board = [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]]
moves = [1,5,3,5,1,2,1,4]
#Output (사라진 인형 개수)
4
#7개 뽑았으니까 5개 찰 때 2개 다시 5개 찰 때 2개사 사라져서 4개가 사라짐
Solution:
def solution(boards, moves):
#1번일경우 배열에서 0번에 접근하므로 -1씩 한다
moves = list(map(lambda mv : mv -1, moves))
stack = [0] #0을 안 넣을 경우 IndexError
cnt = 0
for i in moves: #moves를 index로 사용
for board in boards :
if board[i] != 0 : #비어있지 않으면
stack.append(board[i]) #stack에 board의 i번째 원소를 추가하고
board[i] = 0 #0으로 바꿔준다
if stack[-1] == stack[-2]: #stack의 마지막 원소와 마지막에서 두번째 원소가 같으면
stack.pop()
stack.pop() #원소 2개를 pop한 뒤
cnt += 2 #2씩 증가
break #다음 배열로 가진 않도록 break
return cnt
관련 개념:
람다(lambda)
lambda 인자 : 표현식
#람다 활용 예시
(lambda x,y: x + y)(10, 20)
#Out: 30
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list(map(lambda x: str(x) if x % 3 == 0 else x, a))
#Out: [1, 2, '3', 4, 5, '6', 7, 8, '9', 10]
더보기
(참고 사이트)
'Python > PS in Python' 카테고리의 다른 글
실패율 : 코딩테스트 연습 / Python / Programmers / Level1 (0) | 2020.11.03 |
---|---|
LeetCode 1342. Number of Steps to Reduce a Number to Zero - Python (0) | 2020.10.25 |
LeetCode 1351. Count Negative Numbers in a Sorted Matrix - Python (0) | 2020.10.21 |
LeetCode 771. Jewels and Stones - Python (0) | 2020.10.19 |
[1차] 다트 게임 : 코딩테스트 연습 / Python / Programmers / Level1 (0) | 2020.10.16 |
댓글