문제 링크: https://www.codetree.ai/frequent-problems/cube-rounding-again/description
*같은 문제: 백준 23288 - 주사위 굴리기 2
주사위를 구현해서 돌려야 하는 문제. 오타를 좀 빨리 찾아서 대충 1시간 조금 넘게 걸린 것 같은데, 제발 실수하지 말자...
먼저 각 칸이 어디에 속하는지 DFS를 돌려주는데, 각 군집별로 가장 먼저 탐색하기 시작한 칸의 visited에는 추가로 각 군집에 속하는 칸이 몇 개인지를 저장한다. visited에는 각 칸이 속하는 군집을 탐색할 때, 가장 먼저 탐색한 칸의 좌표를 저장했고, 이렇게 점수 계산할 때 한 번에 몇 칸 연결되어 있는지 찾을 수 있도록 했다. 다른 더 좋은 아이디어가 있으려나?
주사위는 dice에 현재 방향으로 계속 굴렀을 때 나올 수 있는 숫자 4개를 순서대로 저장하고, 오른쪽(시계) 또는 왼쪽(반시계) 방향으로 틀었을 때 나올 수 있는 숫자들을 따로 r_dice, l_dice에 저장한다. 오른쪽 또는 왼쪽으로 방향을 틀 때, 그리고 격자 바깥으로 나가서 방향을 바꿔야 할 때마다 dice, r_dice, l_dice를 업데이트 하는 식으로 주사위 구현을 했다.
'알고리즘 문제풀이 > 코드트리(삼성 기출)' 카테고리의 다른 글
싸움땅(2022 하반기 오전 1번) (0) | 2022.10.17 |
---|---|
색깔 폭탄(2021 상반기 오전 2번, 백준 21609 상어 중학교) (0) | 2022.10.14 |
술래잡기(2022 상반기 오전 1번) (0) | 2022.10.11 |
바이러스 검사(2015 하반기 1번, 백준 13458 시험 감독) (0) | 2022.10.09 |
외주 수익 최대화하기(2017 상반기 오전 2번, 백준 14501 퇴사) (0) | 2022.10.09 |