알고리즘/programmers

[Programmers] 블록 게임

꾸준함. 2025. 1. 26. 00:52

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/42894

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

`3 * 2, 2 * 3 형태로 구성된 블록을 찾을 수 있으면 지운다`를 반복하는 알고리즘 문제였습니다.

 

알고리즘은 다음과 같습니다.

1. 각 열마다 `가장 위쪽 블록의 행 번호`를 추적하여 topRowInCol 배열에 업데이트합니다.

1.1 topRowInCol 배열은 실제 검사해야 할 행 범위를 빠르게 결정할 수 있도록 지원합니다.

 

2. 3 * 2 나 2 * 3 영역에서 다음 조건이 해당하면 블록을 제거해 줍니다.

  • 빈칸이 정확히 두 개 (주어진 블록들이 직사각형이 되려면 빈칸을 두 개 검은색 블록으로 채워줘야 함)
  • 나머지 칸이 전부 동일 블록

 

3. 블록을 제거할 때마다 topRowInCol 배열을 업데이트해 줍니다.

 

4. 위 과정을 한 횟차에서 아무 블록도 제거되지 않을 때까지 반복해 줍니다.

 

 

개발환경: Programmers IDE  

 

지적, 조언, 질문 환영합니다! 질문 남겨주세요~

반응형

'알고리즘 > programmers' 카테고리의 다른 글

[Programmers] 가사 검색  (0) 2025.02.02
[Programmers] RPG 게임 알고리즘  (0) 2025.01.26
[Programmers] 1,2,3 떨어트리기  (0) 2025.01.24
[Programmers] 행렬과 연산  (0) 2024.11.05
[Programmers] 올바른 괄호의 갯수  (1) 2024.11.02