문제 링크: https://www.codetree.ai/frequent-problems/cooling-system/description
*같은 문제: 백준 23289 - 온풍기 안녕!
문제 전반적인 구현 자체는 4-50분 안에 끝냈는데, 딱 조건 하나. 진짜 조건 하나 때문에 1시간 넘게 맞왜틀을 시전해버렸다... 백준이었으면 좀 더 빨리 찾았을 것 같은데, 코드트리쪽 예시 TC가 좀 더 불친절한 것 같다. 시험 준비하는데 있어서는 오히려 좋아...?
벽이 특정 칸의 위쪽 또는 왼쪽에만 설치되는 식으로 주어지기 때문에, 에어컨으로 바람을 보낼 때,
- 이동 방향이 상/좌면 해당 위치에서 체크
- 이동 방향이 하/우면 이동한 위치에서 위쪽/왼쪽 벽 체크
위와 같은 식으로 벽을 체크했다. 체크하는 함수는 block_check으로 따로 구현해서 사용했다.
매 위치에서 전방, 시계/반시계방향 45도로 바람을 보내는데, 이미 보내고자 하는 위치에 바람이 도달해있으면 스택에 넣지 않는 식으로 중복되는 상황을 제거했다.
주위와 시원함을 나누는 부분에서는, 마찬가지로 중복도 막고, 벽 체크도 쉽게 하기 위해 해당 위치의 위쪽/왼쪽하고만 interaction하도록 했다.
... 여기까지는 진짜 구현하는데 얼마 안 걸렸는데, 에어컨이 직선거리로 5까지만 찬 바람을 보낼 수 있다는 사실을 까먹고... 시원함 지수가 0 이하일때도 계속 전파되도록 해버렸다. 이거 때문에 1시간 넘게 날리다니... 현장에서는 이러지 말자...
'알고리즘 문제풀이 > 코드트리(삼성 기출)' 카테고리의 다른 글
토스트 계란틀(2018 하반기 오전 2번, 백준 16234 인구 이동) (0) | 2022.10.09 |
---|---|
연산자 배치하기(2017 하반기 오후 2번, 백준 14888 연산자 끼워넣기) (0) | 2022.10.08 |
팩맨(2021 하반기 오후 1번, 백준 23290 마법사 상어와 복제) (0) | 2022.10.08 |
Sam의 피자학교(2021 하반기 오후 2번, 백준 23291 어항 정리) (0) | 2022.10.08 |
예술성(2022 상반기 오전 2번) (0) | 2022.10.07 |