-
42. 프렌즈4블록코딩 테스트/Level 2 2020. 8. 25. 23:39반응형
https://programmers.co.kr/learn/courses/30/lessons/17679
프렌즈4블록
2018 KAKAO BLIND RECRUITMENT
1942명 완료난이도가 높지 않은 편이며 열심히 주어진 조건에 맞춰 코딩하면 답이 나옵니다.
def solution(m, n, board): board_list = [[each2 for each2 in each1] for each1 in board] prev_num = 0 def_num = None del_num = None while def_num != 0: # check_list 초기화 check_list = [[False for _ in range(n)] for _ in range(m)] # 지워질 블록을 check_list 에 기록 for i in range(m - 1): for j in range(n - 1): if board_list[i][j] == board_list[i + 1][j] == board_list[i][j + 1] == board_list[i + 1][j + 1]: check_list[i][j] = True check_list[i + 1][j] = True check_list[i][j + 1] = True check_list[i + 1][j + 1] = True # 블록 지움 for i in range(m): for j in range(n): if check_list[i][j]: board_list[i][j] = None # 블록 내림 for i in range(1, m): for j in range(n): if board_list[i][j] is None: for ii in range(i, 0, -1): board_list[ii][j] = board_list[ii - 1][j] board_list[ii - 1][j] = None # 블록 개수 체크 del_num = 0 for i in range(m): for j in range(n): if board_list[i][j] is None: del_num += 1 # 과거 블록 개수와 비교 def_num = del_num - prev_num prev_num = del_num return del_num
반응형