티스토리 뷰
def dfs(y, x):
global each
each += 1
for k in range(4):
ny = y + dy[k]
nx = x + dx[k]
if 0<=ny<N and 0<=nx<N:
if map[ny][nx] == 1 and chk[ny][nx] == False:
chk[ny][nx] = True
dfs(ny, nx)
for j in range(N):
for i in range(N):
if map[j][i] == 1 and chk[j][i] == False:
chk[j][i] = True
each = 0
dfs(j,i)
result.append(each)
Q. 이러한 dfs알고리즘 구현 코드가 있다고 칠때 이때 dfs에서 (y,x)로 받아주잖아 그런데 이걸 (x,y)로 받아주면안되는거야? 왜 y부터 받아주는거야?
A. dfs 함수에서 (y, x)로 받아주는 이유는 보통 행(row)을 먼저 처리하고 열(column)을 나중에 처리하는 방식을 따르기 때문입니다. 이 방식은 대부분의 프로그래밍 언어에서 행 우선 순회(row-major order)를 따르는 관행입니다.
행(row)은 보통 수직 방향으로 이동하고, 열(column)은 수평 방향으로 이동하기 때문에 좌표를 (y, x)로 받아들이는 것이 직관적입니다. 이렇게 하면 코드가 좀 더 이해하기 쉬워집니다.
또한, 다른 프로그래머와 협업할 때 행과 열을 헷갈리지 않도록 하기 위해 일반적으로 이러한 관행을 따릅니다. 따라서 (y, x) 순서로 좌표를 받아들이는 것이 좋은 습관입니다.
참조
https://github.com/ChangguHan/codingtestbasic/blob/master/BJ2667.py
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 조회수기능
- visionAPI
- 조회수기능개발
- PC시간어떻게
- 목서버
- 실시간클록
- 알고있
- 구글클라우드스토리지
- mockserver
- 해커톤
- jupyterlab
- crudrepository
- redis-py
- 데이터잘림
- 모의서버
- 주피터랩
- 지도데이터
- 빈해쉬맵
- 항해해커톤
- ChatGPT
- redis
- 네이버이미지검색
- 구글
- 스마트렌즈
- 소숫점잘림
- 이미지검색
- 항해커톤
- 시간어떻게
- 실시간클락
- redisTemplate
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함