티스토리 뷰
코드 알고리즘
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
- 위클리챌린지2주차
- 트리
- 배포
- Java
- 프로그래머스
- 백준
- vue
- 싸피
- 독학
- django
- 알고리즘
- git
- AWS
- 안드로이드스튜디오
- javascript
- commit되돌리기
- 비동기패턴
- 세션 스토리지
- SSAFY
- N과M
- 파이썬
- SQL
- 자바
- SSAFY퇴소
- SWEA
- splide
- Python
- vue.js
- Pyhton
- DOM
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함