<출처: https://programmers.co.kr/learn/courses/30/lessons/60059>
시뮬레이션 문제입니다.
M, N 제한이 작으므로 2*M +N 크기의 2차원 배열을 생성한 뒤 배열 한 가운데에 LOCK 정보를 입력합니다.
그리고 나서 (0,0) 좌표부터 ~ (M + N -1, M + N -1) 좌표를 시작점으로 KEY를 LOCK과 비교해봅니다.
0도, 90도, 180도, 270도로 형태를 바꿔가면서 (2*M + N) * 2*M + N) 배열을 전부 탐색해도 시간초과가 나지 않습니다.
한 가지 유의할 점은, LOCK과 KEY가 아닌 나머지 배열 칸들은 0/1이 아닌 값으로 구별해줘야
KEY과 LOCK 둘 사이의 관계를 제대로 비교할 수 있습니다.
<코드: https://github.com/cottory/algorithm/blob/master/PROGRAMMERS/kakao25_0506.cpp>
'Algorithm > Programmers' 카테고리의 다른 글
[2019 카카오 기출] 징검다리 건너기 (0) | 2020.05.06 |
---|---|
[2019 카카오 기출] 불량 사용자 (0) | 2020.05.06 |
[2019 카카오 기출] 호텔 방 배정 (0) | 2020.05.06 |
[2019 카카오 기출] 블록 게임 (0) | 2020.05.04 |
[2018 카카오 기출] 방금 그 곡 (0) | 2020.05.04 |