



코딩테스트 연습 - [1차] 프렌즈4블록 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 코드
def solution(m,n,board):
answer = 0
for i in range(len(board)):
board[i] = list(board[i])
while True:
# 터질위치를 집합으로 생성해줌
bomb = set()
for i in range(m-1):
for j in range(n-1):
if board[i][j] == []:
continue
if board[i][j]==board[i][j+1] and board[i][j]==board[i+1][j+1] and board[i][j]==board[i+1][j]:
bomb.add((i,j))
bomb.add((i,j+1))
bomb.add((i+1,j+1))
bomb.add((i+1,j))
#터질게 있으면 answer증감하고
#공백으로 처리
if bomb:
answer += len(bomb)
for i,j in bomb:
board[i][j] = []
#터트릴게 없으면 break
else:
break
#이제는 위치를 이동시켜주자
while True:
move_check = 0
for i in range(m-1):
for j in range(n):
# 공백이면 continue
if board[i][j] == []:
continue
#위치 이동 시켜주기
if board[i+1][j] == []:
move_check+=1
board[i+1][j] = board[i][j]
board[i][j] = []
#위치가 변하지 않았으면 break
if move_check == 0:
break
#print(answer)
#print(board)
return answer
solution(6,6,["TTTANT", "RRFACC", "RRRFCC", "TRRRAA", "TTMMMF", "TMMTTJ"])
'코딩테스트 파이썬 > 파이썬 프로그래머스 2단계' 카테고리의 다른 글
| 전력망을 둘로 나누기 (0) | 2023.09.07 |
|---|---|
| 가장 큰 수 (0) | 2023.08.14 |
| 모음 사전 (0) | 2023.07.28 |
| 스킬트리 (0) | 2023.07.28 |
| 게임 맵 최단거리 (0) | 2023.07.26 |