[백준] 11559번 Puyo Puyo _ Python
·
Algorithm/Simulation
[초기 접근 방법]'애니팡' 같은 느낌의 문제4개 이상이 인접한 구역이 있는지를 체크해서 폭탄을 터트린다.이 때 일단 모든 맵에서 bfs()로 인접 지역을 체크하고터트릴 폭탄이 있는 경우 터트리고 맵을 내려, 다시 인접한 구역이 있는지 확인한다. [생각]폭탄이 터트리고, 공백의 칸을 어떻게 내리는지 고민했던 문제 1) 일단 '.'으로 초기화하자2) 그리고 각 플로우마다 맨 아랫줄부터 . 그리고 그 윗줄에 색깔이 있으면 교환하는 형식으로 내려오는 걸 구현하자 for i in range(11, -1, -1): for j in range(6): if board[i][j] != '.': # 아래에 빈 칸이 있는지 확인하고, 있으면 전부 내려버려 for k in range(..
[백준] 18808번 스티커 붙이기 _ Python
·
Algorithm/Simulation
[초기 접근 방법] 스티커를 이동하면서 붙일 수 있는지 check 모든 구역에 붙일 수 없다면, 스티커를 회전 4번 회전했는데도 못 붙이는 경우는, 다음 스티커를 판단한다. [생각] 1. 회전(rotate)를 코드로 어떻게 표현할 지에 대해서 고민했던 문제 rotateSticker[j][row - 1 - i] = sticker[i][j] 90도 회전한 스티커의 '행' 좌표는, 기존 스티커의 '열' 좌표가 된다. '열' 좌표는 '행' 좌표의 대칭점이 된다. 2. 스티커를 이동하는데 투포인터로 풀어야 되는지 알고 흠칫했다는.. [코드] # 풀이 시간 : 1시간 30분 # 시간복잡도 : O(4*s^2*n^2) / s:스티커, n:노트북 # 공간복잡도 : O(n^2) # 참고 : - import sys inpu..