일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- skip-gram
- boj
- select
- Python
- MySQL
- CBOW
- backward
- algorithm
- Heap
- sort
- dl
- Sigmoid
- Programmers
- hash
- 프로그래머스
- que
- Stack
- stak
- affine
- DeepLearning
- kakao
- PPMI
- Numpy
- 신경망
- 파이썬
- SQL
- FullyConnectedLayer
- Word2vec
- 자연어처리
- 딥러닝
Archives
- Today
- Total
혜온의 이것저것
[20018 KAKAO RECRUITMENT] 프렌즈4블록 - Python 본문
[문제 이해 및 풀이]
board의 문자열들을 문자 하나씩 나눠야 하나씩 수정할 수 있기 때문에 문자열들을 한글자씩 나눠주었다.
이 문제에서는 같은 과정이 계속 반복되기 때문에 while문 안에 코드를 넣어 풀어주었다.
for문을 돌면서 4블록이 만들어지는게 확인되면 check하기 위해서 만든 array배열에서 그 위치에 해당하는 값을 1로 바꾸어 주었다. for문을 다 돌면 array의 합을 계산하여 새롭게 4블록이 생긴 것이 있는지 확인해주었다.
이 때, 만약 새로운 4블록이 만들어지지 않았다면 더 이상 게임이 진행되지 않기 때문에 while문을 빠져나가도록 해주었다.
4블록이 만들어지면 그 블록을 지우고 빈 공간을 채워야 하다.
이번에는 거꾸로 for문을 돌면서 array의 값이 1이면 4블록에 해당하는 값이므로 위에 있는 블록으로 대체해준다.
이 때, 위에 있는 블록도 array의 값이 1이라면 없어진 불록이기 때문에 받아올 수 없다. 따라서 x를 비교하는 인덱스 값으로 설정하여서 array값이 1이 아닐 때까지 하나씩 감소기켜 주었다.
맨 윗칸에 있는 블록은 받아올 블록이 없기 때문에 0을 받도록 해주었다.
[나의 코드]
def solution(m,n,board):
answer=0
for i in range(len(board)):
board[i]=list(board[i])
while True:
array=[[0]*n for i in range(m)]
for i in range(m-1):
for j in range(n-1):
if board[i][j]!=0 and board[i][j]==board[i][j+1] and board[i][j]==board[i+1][j] and board[i][j]==board[i+1][j+1]:
array[i][j],array[i+1][j],array[i][j+1],array[i+1][j+1]=1,1,1,1
cnt=0
for i in range(m):
cnt+=sum(array[i])
answer+=cnt
if cnt==0:
break
for i in range(m-1,-1,-1):
for j in range(n):
if array[i][j]==1:
x=i-1
while x>=0 and array[x][j]==1:
x-=1
if x<0:
board[i][j]=0
else:
board[i][j]=board[x][j]
array[x][j]=1
return answer
문제출처 :https://programmers.co.kr/learn/courses/30/lessons/17679
'Algorithm > Programmers' 카테고리의 다른 글
[2019 KAKAO BLIND RECRUITMENT] 후보키 - Python (0) | 2022.02.09 |
---|---|
[2018 KAKAO RECRUITMENT] 추석트래픽 - Python (0) | 2022.01.20 |
[2018 KAKAO BLIND RECRUITMENT] 다트 게임 - Python (0) | 2021.12.29 |
[코딩테스트 고득점 Kit ] 완전탐색 모의고사 - Python (0) | 2021.10.04 |
[코딩테스트 고득점 KIT] 정렬 H-index - Python (0) | 2021.09.29 |
Comments