DFS, BFS에서 x,y 순서를 왜 바꾸신건지 이유를 알고 싶습니다.
133
작성자 없음
작성한 질문수 0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요 강의 유익하게 수강하고 있습니다.
다름이 아니라 2주차 탐색 코드를 작성할 때 [y][x] 순서로 하는 것을 기본으로 하겠다 언급하고 넘어가셨고 강의 예제에는 정사각배열을 받아서 의문을 가지지 않고 넘어갔는데 문제를 풀다 보니 처음에 표를 입력 받을 때 가로 세로 받는 순서도 그렇고 표 자체도 그렇고 머리 속에서 자꾸 꼬이는데 [y][x] 순서로 하시는 이유를 알 수 있을까요? 그리고 저 순서로 받을 경우에도 y가 세로 x가 가로로 생각하고 편의를 위해서 순서를 저렇게 받는 거라고 인식하고 있는게 맞을까요?
답변 2
0
안녕하세요 ㅎㅎ
처음에 표를 입력 받을 때 가로 세로 받는 순서도 그렇고 표 자체도 그렇고 머리 속에서 자꾸 꼬이는데 [y][x] 순서로 하시는 이유를 알 수 있을까요? 그리고 저 순서로 받을 경우에도 y가 세로 x가 가로로 생각하고 편의를 위해서 순서를 저렇게 받는 거라고 인식하고 있는게 맞을까요?
-> 문제내에서 x, y 순으로 받는 경우는 그 순서대로 진행해도 무방합니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 신동훈님.
DFS와 BFS에서 좌표 순서를 [y][x]로 사용하는 이유에 대해 궁금하신 부분은 많이들 겪는 혼동일 수 있습니다. 보통 프로그래밍에서 2차원 배열을 다룰 때, [행][열]의 순서로 접근하는 것이 일반적입니다. 따라서 [y][x] 순서를 선택하는 이유는 성능적인 측면과 특정 프레임워크나 언어의 구현 방식에 기인합니다.
행 우선 접근: C++의 메모리 저장 방식은 ‘행 우선(row-major order)‘로 설계되어 있습니다. 이는 배열이 메모리에 행 단위로 저장된다는 의미입니다. 따라서 [y][x] 순서대로 접근하면 메모리 접근에서의 캐시 효율이 높아지기 때문에, 더 빠른 실행 속도를 보장할 수 있습니다.
시맨틱: 특정 알고리즘이나 문제에서는 ‘y’가 세로, ‘x’가 가로의 개념에 맞춰지는 경우가 있기 때문에, 이를 바꾸어 생각해 사용 같게 여길 수 있습니다. 즉, 탐색을 코딩할 때, y는 세로 이동(위아래), x는 가로 이동(좌우)을 의미한다고 가정하는 것이 편합니다.
또한, 다음 링크에서도 비슷한 주제를 다루고 있어 참고하시면 도움이 될 겁니다:
- BFS 탐색 관련 질문드립니다.
- BFS x,y 축을 반대로 사용하시는 이유에관해 질문 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.
0
50
2
2주차 개념#12 트리 순회
0
24
2
백준사이트가 종료된다고 합니다.
0
273
2
백준 서비스 종료
9
866
1
sk 하이닉스 코테 대비
0
367
2
3-G 최댓값 질문
0
50
1
모듈러 연산 값이 10이 아닌 경우도 있지 않나요?
0
82
2
3-I 코드 질문드립니다.
0
62
2
3-N 질문 있습니다.
0
66
2
학습방법
0
102
2
4-H 질문 있습니다 (코드 리뷰)
0
66
2
코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.
0
169
2
2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.
0
69
2
2주차 개념 #4-2. 인접행렬 질문있습니다.
0
64
2
1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.
0
51
2
조합 재귀 풀이 확인 해주시면 감사하겠습니다.
0
68
2
함수별 시간복잡도
0
72
2
3-h 질문입니다.
0
49
1
안녕하세요 선생님. 시간 복잡도 4번 질문있습니다.
0
53
2
1-I 문제 질문 드립니다.
0
76
2
2-P 질문입니다.
0
56
1
mac에서 시작하기 관련
0
91
2
5-Q 질문
0
63
2
풀이 코드 질문
0
64
2





