본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다
파이썬 코드
# 크레인 인형뽑기 게임
def solution(board, moves):
# 집은 인형을 넣을 배열
pick = []
# 답
answer = 0
# 주어진 moves 배열을 토대로 board를 체크하기
# x: 집을 인형의 위치
for x in moves:
# board의 한 줄 씩 접근
# borad의 행 길이
board_row_length = len(board)
# board의 행 번호
for i in range(board_row_length):
# 해당 줄의 집을 위치에 인형이 없는 경우
if board[i][x - 1] != 0:
# pick 배열에 인형을 넣기
pick.append(board[i][x - 1])
# 해당 시점에서 배열의 길이
pick_length = len(pick)
# pick 배열이 길이가 2이상인 배열인 경우 이전의 요소와 비교하기
if pick_length >= 2:
# 같은 인형인 경우 제거한 후 답을 카운트
if pick[pick_length - 1] == pick[pick_length - 2]:
pick.pop()
pick.pop()
# 사라진 인형 갯수
answer += 2
# board에서 없애기(0으로 바꾸기)
board[i][x - 1] = 0
# 해당 moves 체크 중단
break
return answer
Comment
이차원 배열의 요소를 주어진 조건대로 접근하여 빼낸 후, 빼낸 원소들을 별도의 리스트에 담은 뒤 같은 요소가 연달아 나오면 제거하여 카운트하는 문제이다.
내 코드가 좋은 답안 코드와 비슷하게 나와 흡족하다.
Reference
'programming study > Algorithm' 카테고리의 다른 글
[프로그래머스] 모의고사 - python 풀이 (0) | 2021.04.18 |
---|---|
[프로그래머스] 신규 아이디 추천 - python 풀이 (0) | 2021.04.18 |
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (31)(2021.2.24) (0) | 2021.02.24 |
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (30)(2021.2.23) (0) | 2021.02.23 |
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (29)(2021.2.22) (0) | 2021.02.22 |