CLASS 3
ESSENTIAL
2의 제곱수 크기의 정사각형 셀을 Z 모양으로 탐색할 때 특정 칸의 탐색 순서를 구하는 문제입니다. 태그와 같이 재귀를 이용해서 풀 수 있겠지만, 조금 더 수학적으로 접근하는 방법도 있습니다. 각 칸의 행과 열의 값에 따라 탐색 순서가 어떻게 바뀌는지 확인하는 것입니다. 이를 통해 규칙을 찾아내면 다음과 같습니다. r & (1 << i)
이면 탐색 순서에 2 << (2 * i)
추가, c & (1 << i)
이면 탐색 순서에 1 << (2 * i)
를 추가하면 됩니다. 이는 다시 생각해보면 주어진 r
과 c
에 대해 전체 정사각형의 4등분 중 어디에 포함되어있는지를 재귀적으로 구하는 것과 다른 점이 없습니다.
백준 알림 보다가 갑자기 이건 되겠다 싶어서 1시간 잡고 숏코딩 질렀더니 C99 1등 찍었습니다… 숏코드 순위
소스 코드
언어 | 코드 | 시간 | 비고 |
---|---|---|---|
Python 3 | 코드(Github) / 코드(백준) | 2020-12-15 23:14:52 | |
C | 코드(Github) / 코드(백준) | 2020-12-26 09:01:09 | 숏코딩, 90바이트 |