06 Sep 2020

[Programmers] [1차] 프렌즈4블록

2018 KAKAO BLIND RECRUITMENT

문제 바로가기 : https://programmers.co.kr/learn/courses/30/lessons/17679
문제 설명은 위 링크에서 확인해주시길 바랍니다.

solution


review

2*2 블럭이 모두 같은 그림이면 삭제할 수 있고 붙어있는 블럭도 유의해서 체크해야 한다.
블럭 하나를 선택한 후 아래, 오른쪽, 오른쪽아래와 같은지 체크한다. 따라서 범위가 NxN일 때 (N-1)X(N-1)까지 탐색한다.
삭제 가능한 블럭은 점으로 표시하고 solve()에서 탐색이 끝났다면 reset()에서 블럭이 아래로 쌓이게끔 정리해준다.
더 이상 삭제할 블럭이 없을 때는 solve()에서 false를 반환해 while문을 탈출하고 점의 개수를 세서 반환한다.

단순 구현 문제로 분류되는데 처음에 자꾸 시간 초과가 떠서 당황했었다. ㅡㅡ;
겹치는 블럭들을 연이어서 bfs로 탐색해 체크에 업데이트 해주는 이상한 짓을 하다가 시간이 너무 오래걸렸다.
천천히 보니 굳이 그렇게 할 필요없고 모든 블럭을 조건에 맞춰 탐색해 나가면 문제 없더라. 하하..
삽질때문에 시간도 날리면서 머리 아팠던거 생각하니 좀 서럽다. 어쩄거나 마무리 완료!

Location

Icheon, KR

Email

iteratively@naver.com

Social

-->