[프로그래머스] [1차] 프렌즈4블록

yewon Lee·2023년 12월 1일
0


😎 코딩테스트 연습>2018 KAKAO BLIND RECRUITMENT>[1차] 프렌즈4블록


📘 문제풀이

def solution(m, n, board):
    answer = 0    
    board = [list(i) for i in board]
    
    while True:
        d = set() #중복제거
        
        #지울 블록 찾기
        for i in range(m-1):
            for j in range(n-1):
                if (board[i][j] == board[i][j+1] == board[i+1][j] == board[i+1][j+1]) and board[i][j] != '':
                    d.add((i, j))
                    d.add((i, j+1))
                    d.add((i+1, j))
                    d.add((i+1, j+1))
        #지울 블록 개수 세기
        answer += len(d)
        if not d:
            break
        
        #블록 지우기
        for p in d:
            x, y = p
            board[x][y] = ''
        
        #블록 내리기
        for i in range(m-1, -1, -1):
            for j in range(n):
                if board[i][j] == '':
                    tmp = i
                    
                    while tmp >= 0 and board[tmp][j] == '':
                        tmp -= 1
                    if tmp >= 0:
                        board[i][j] = board[tmp][j]
                        board[tmp][j] = ''
                                                    
    return answer
소혜언니의 코드 참고했다.. ㅎ
profile
시작

0개의 댓글