공부, 기록

프로그래머스 2018 카카오 블라인드 프렌즈4블록 본문

코딩

프로그래머스 2018 카카오 블라인드 프렌즈4블록

무는빼주세요 2020. 8. 23. 12:46

문제링크 : https://programmers.co.kr/learn/courses/30/lessons/17679

 

코딩테스트 연습 - [1차] 프렌즈4블록

프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 프렌즈4블록. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙��

programmers.co.kr

 

나의 코드

def solution(m, n, board):
    answer = 0
    maps=[[j for j in i]for i in board]
    count=0
    while True:
        maps, count=blockDelete(maps)
        if count == 0:
            break
        answer+=count
        Blockdown(maps)
    return answer

def Blockdown(Map):
    for i in range(len(Map)-1,0,-1):
        for j in range(0,len(Map[i])):
            if Map[i][j] == '0':
                count = i-1
                while count>=0:
                    if Map[count][j] !='0':
                        Map[i][j] = Map[count][j]
                        Map[count][j] = '0'
                        count=-1
                    else :
                        count-=1
    return Map
def blockDelete(Map):
    checkboard=set()
    DeleteCount=0
    for i in range(len(Map)-1,0,-1):
        for j in range(len(Map[i])-1,0,-1):
            if Map[i][j]==Map[i][j-1] and Map[i][j]==Map[i-1][j-1]and Map[i][j]==Map[i-1][j] and Map[i][j]!="0":
                checkboard.add((i,j))
                checkboard.add((i,j-1))
                checkboard.add((i-1,j))
                checkboard.add((i-1,j-1))
    DeleteCount=len(checkboard)
    for i in checkboard:
        Map[i[0]][i[1]]="0"
    return Map,DeleteCount
solution(6,6,["TTTANT", "RRFACC", "RRRFCC", "TRRRAA", "TTMMMF", "TMMTTJ"])

'코딩' 카테고리의 다른 글

4301. 콩 많이 심기 D4 파이썬  (0) 2020.08.23
4530. 극한의 청소 작업 D4 파이썬  (0) 2020.08.23
입국심사 파이썬  (0) 2020.08.23
SWEA 1865. 동철이의 일 분배 (D4) 파이썬  (0) 2020.08.23
SWEA 5208. 전기버스2 (Python)  (0) 2020.07.31