728x90
반응형
https://www.acmicpc.net/problem/1074
1074번: Z
한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을
www.acmicpc.net
풀이
다음 문제는 재귀함수나 분할정복으로 해결할 수 있다.
재귀로 풀어볼려고 했으나 재귀로는 접근이 안되서 분할 정복으로 해결하였다.
주어진 2**n에서 몇사분면에 있는지 찾은 다음 줄여갔다.
순서는 2 - 1 - 3 - 4사분면으로 순서가 진행되는데 1사분면이면 2사분면의 지나온 횟수만큼 더해줘야하므로 size**2을 더해주는 방식으로 해결했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
N,r,c=map(int,input().split())
cnt=0
while N>1:
size=(2**N)//2
if r<size and c<size:
pass
elif r<size and c>=size:
cnt+=size**2
c-=size
elif r>=size and c<size:
cnt+=size**2*2
r-=size
elif r>=size and c>=size:
cnt+=size**2*3
r-=size
c-=size
N-=1
if r==0 and c==0:
print(cnt)
elif r==0 and c==1:
print(cnt+1)
elif r==1 and c==0:
print(cnt+2)
elif r==1 and c==1:
print(cnt+3)
|
cs |
728x90
반응형
'Python3 > 백준 알고리즘' 카테고리의 다른 글
2022.02.21 [백준] (python 파이썬) 별 찍기 - 10 (0) | 2022.02.21 |
---|---|
2022.02.19 [백준] (python 파이썬) 트리 순회 (0) | 2022.02.19 |
2022.02.19 [백준] (python 파이썬) 동전 0 (0) | 2022.02.19 |
2022.02.19 [백준] (python 파이썬) 영역 구하기 (0) | 2022.02.19 |
2022.02.19 [백준] (python 파이썬) N번째 큰 수 (0) | 2022.02.19 |
댓글