코딩테스트 준비/[프로그래머스]
[1차] 프렌즈4블록 2018 KAKAO BLIND RECRUITMENT - 프로그래머스 python
bled
2022. 5. 18. 21:14
https://programmers.co.kr/learn/courses/30/lessons/17679?language=python3
코딩테스트 연습 - [1차] 프렌즈4블록
프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙
programmers.co.kr
def solution(h, w, board):
answer = 0
board = [list(i) for i in board]
matched = True
while matched:
matched = set()
# find 4bloacks in the board
for i in range(h-1):
for j in range(w-1):
if board[i][j] == board[i+1][j] \
== board[i][j+1] == board[i+1][j+1] != '#':
for ii in range(2):
for jj in range(2):
matched.add((i+ii, j+jj))
# erase matched blocks
for i, j in matched:
board[i][j] = '#'
# drop rest blocks
for _ in range(h):
for i in range(h-1, 0, -1):
for j in range(w):
if board[i][j] == '#':
board[i][j], board[i-1][j] = board[i-1][j], board[i][j]
answer += len(matched)
return answer