| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
- sort
- FullyConnectedLayer
- que
- algorithm
- 파이썬
- Word2vec
- Programmers
- 신경망
- 딥러닝
- dl
- kakao
- skip-gram
- boj
- hash
- PPMI
- affine
- Python
- Sigmoid
- backward
- Heap
- 자연어처리
- SQL
- CBOW
- Numpy
- MySQL
- Stack
- 프로그래머스
- stak
- DeepLearning
- select
- 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
코딩테스트 연습 - [1차] 프렌즈4블록
프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙
programmers.co.kr
'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 |