-
프로그래머스[Python] - 프렌즈 4블록 [2018 KAKAO BLIND RECRUITMENT]프로그래머스문제정리 & Python잡다한것 2021. 7. 18. 18:50728x90반응형
문제 url : https://programmers.co.kr/learn/courses/30/lessons/17679
문제 내용 : 2 X 2 짜리 아이콘들이 만나면 터지고 그자리는 비는 게임이다. 후에 빈칸은 채워가며 아이콘들이 내려온다. 자동으로 2 X 2 아이콘들이 또 만나면 점수를 얻어서 최종적으로 얼마의 점수를 얻는지 계산하는 게임이다. (어렸을 때 애니팡 같은 게임에서 게임이 시작하거나 갱신되면서 연속적으로 보너스 얻는 부분 구현하는 것과 동일한 것 같아서 흥미로웠다!)
알고리즘 : 단순 구현, Queue
풀이과정 : 5번 10번 테스트 케이스 에러나서 한참 고생했다. Board를 새로 만드는 작업에서 버그가 있었다. 위에서부터 아래로 내려가면서 없어진 구역과 바꾸려고했는데, 그렇게 순서대로 가다보면 중간에 아이콘이 있는 애랑 부딫치면서 멈추고, 중간에 아이콘 아래에 빈칸이 있을 경우 그 아이는 내려가게 되면서 그전까지 내려오던 아이는 멈추게 된다.
그래서 Board를 새로 만들때, 아래서부터 하나씩 탐색하면서 빈칸이라면 위에 있는 애들을 끌고 내려보내는 코드로 변환 시켰다.
우선 탐색은 간단했다. 4가지 경우에 대해서 방향을 설정하고 판별한 후, set으로 없앨 아이콘 애들을 넣어두고 return 시킨다. 걔네들을 answer에 더해주고 그자리에 X 표시로 빈칸임을 표시한다. 위에 처럼 새로 보드를 만들어서 점수를 얻지 않을 때 까지 돌리면 된다.
반응형'프로그래머스문제정리 & Python잡다한것' 카테고리의 다른 글
프로그래머스[Python] - 쿼드 압축 후 개수 세기, [1차]캐시 (0) 2021.07.21 프로그래머스[Python] - 이진 변환 반복하기, 점프와 순간 이동, 스킬트리 (0) 2021.07.19 프로그래머스[Python] - 구명 보트, 영어 끝말잇기, 2개 이하로 다른 비트 (0) 2021.07.17 프로그래머스[Python] - 순위 검색[2021 KAKAO BLIND RECRUITMENT] (0) 2021.07.17 프로그래머스[Python] - 괄호 회전하기, 큰 수 만들기, 배달 (0) 2021.07.15