티스토리 뷰
코드 알고리즘
1.계속해서 4분할을 한다
2.길이가 2가 되면 더이상 분할할 수 없기 때문에 여기서 작은 사각형에서 왼쪽위->오른쪽위->왼쪽아래->오른쪽아래 (Z모양 순서)순서로 cnt +=1 해주며 찾아준다.
cnt = 0
def func(a,x,y):
global cnt
if a == 2:
if x == r and y == c: #왼쪽 위
print(cnt)
return
cnt += 1
if x == r and y + 1 == c: #오른쪽 위
print(cnt)
return
cnt += 1
if x+1 == r and y == c: # 왼쪽아래
print(cnt)
return
cnt += 1
if x+1 == r and y+1 == c: #오른쪽 아래
print(cnt)
return
cnt += 1
else:
func(a//2, x, y)# 첫번째 사각형(왼쪽 위)
func(a//2,x, y + a//2) #두번째 (오른쪽 위)
func(a // 2, x + a //2, y ) # 세번째(왼쪽 아래)
func(a // 2, x + a // 2, y + a // 2) # 네번째 (오른쪽 아래)
N, r, c = map(int,input().split())
num = 2**N #num은 한변의 길이
func(num,0,0)
#좌표 r,c에 있는 cnt수를 출력해야한다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11399. ATM (0) | 2021.03.27 |
---|---|
[백준] 17070. 파이프 옮기기 1 (0) | 2021.03.16 |
[백준] 17478. 재귀함수가 뭔가요? (0) | 2021.03.04 |
[백준] 6603. 로또 (0) | 2021.03.04 |
[SWEA] 4865. 글자수 (0) | 2021.02.20 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 트리
- django
- javascript
- DOM
- 백준
- 프로그래머스
- SSAFY퇴소
- 싸피
- SSAFY
- splide
- N과M
- 세션 스토리지
- 비동기패턴
- 파이썬
- vue
- SQL
- Java
- vue.js
- 알고리즘
- 위클리챌린지2주차
- 안드로이드스튜디오
- Pyhton
- 자바
- 독학
- Python
- git
- commit되돌리기
- 배포
- SWEA
- AWS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 |
글 보관함