PS알못 OrbitHv의 PS logo PS알못 OrbitHv의 PS

태그:

CLASS 3 ESSENTIAL

2의 제곱수 크기의 정사각형 셀을 Z 모양으로 탐색할 때 특정 칸의 탐색 순서를 구하는 문제입니다. 태그와 같이 재귀를 이용해서 풀 수 있겠지만, 조금 더 수학적으로 접근하는 방법도 있습니다. 각 칸의 행과 열의 값에 따라 탐색 순서가 어떻게 바뀌는지 확인하는 것입니다. 이를 통해 규칙을 찾아내면 다음과 같습니다. r & (1 << i)이면 탐색 순서에 2 << (2 * i) 추가, c & (1 << i)이면 탐색 순서에 1 << (2 * i)를 추가하면 됩니다. 이는 다시 생각해보면 주어진 rc에 대해 전체 정사각형의 4등분 중 어디에 포함되어있는지를 재귀적으로 구하는 것과 다른 점이 없습니다.


백준 알림 보다가 갑자기 이건 되겠다 싶어서 1시간 잡고 숏코딩 질렀더니 C99 1등 찍었습니다… 숏코드 순위

소스 코드

언어 코드 시간 비고
Python 3 코드(Github) / 코드(백준) 2020-12-15 23:14:52
C 코드(Github) / 코드(백준) 2020-12-26 09:01:09 숏코딩, 90바이트