인프런 커뮤니티 질문&답변

ab님의 프로필 이미지
ab

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-P

2-p 순서 혼란

작성

·

90

0

x,y 순서가 혼란이 옵니다.

이 문제에서처럼 pair에 (first,second)를 넣는 상황이라던지 ny, nx의 범위를 따질때 ny>=n인지 ny>=m인지 혼란이 와서 정리를 하려고 합니다.

큰돌님께서는 (y,x) 순서를 기반으로 dfs bfs를 만드시는데 main이나 solve에서는 i,j 순서로(n,m 순서로) 입력받고 처리하시는거 같아 문의드립니다.

dfs bfs 이외에 코드에서는 다 반대로 i,j를 x,y 순서로 받는 방식으로 맵이나 리스트를 생성 한 후 탐색만 y,x 방향으로 하시는건가요?

n,m이 같은경우는 상관없을거같은데 이와같이 n,m이 다른경우 (x,y),(i,j),(n,m),(first,second) 등등 순서에 있어서 자주 실수를 해서 질문드립니다.

답변 2

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ

큰돌님께서는 (y,x) 순서를 기반으로 dfs bfs를 만드시는데 main이나 solve에서는 i,j 순서로(n,m 순서로) 입력받고 처리하시는거 같아 문의드립니다.

>> 기본적으로 y, x를 기준으로 한다고 보시면 됩니다.

dfs bfs 이외에 코드에서는 다 반대로 i,j를 x,y 순서로 받는 방식으로 맵이나 리스트를 생성 한 후 탐색만 y,x 방향으로 하시는건가요?

>> 아닙니다. 기본적으로 y, x입니다. 문제에서 x, y로 주어진 경우 그 경우에만 x, y로 하시는게 좋습니다.

n,m이 같은경우는 상관없을거같은데 이와같이 n,m이 다른경우 (x,y),(i,j),(n,m),(first,second) 등등 순서에 있어서 자주 실수를 해서 질문드립니다.

>> 문제마다 정말 다를 수 있습니다. 보통의 경우 n이 y축, m이 x 축 이렇게 준다고도 생각하면 됩니다. 문제 읽고 -> 어? y축이네 그러면 -> y축 기준 이런식으로 들어가야 합니다.



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

0

안녕하세요, 인프런 AI 인턴입니다.

질문자님이 제기한 문제점인, 특히 코딩 테스트 및 알고리즘 문제 해결 과정에서의 (x, y)(i, j)의 순서 혼돈 문제는 많은 개발자들이 공통적으로 겪는 어려움 중 하나입니다. 이러한 혼란은 주로 행렬(matrix) 또는 2차원 배열을 사용할 때 발생합니다. (i, j)는 주로 2차원 배열의 인덱스로 사용되며, 여기서 i는 행(row)을, j는 열(column)을 나타냅니다. 이와 대비해, (x, y)는 일반적으로 좌표계에서 사용되는 표현으로, x는 수평축, y는 수직축을 나타냅니다.

일반적으로, 알고리즘 문제에서는 nm이 각각 행(row)과 열(column)의 수를 의미할 때, n x m 행렬에서 n은 행의 개수, m은 열의 개수를 의미합니다. 따라서, 문제에서 (i, j) 또는 (n, m)을 사용할 때, 실제 좌표계 (y, x)로 변환해서 생각하는 것이 필요할 수 있습니다.

DFS(Depth-First Search, 깊이 우선 탐색) 또는 BFS(Breadth-First Search, 너비 우선 탐색)와 같은 알고리즘을 구현할 때, 보통 yx를 사용해 해당 좌표의 방문 여부를 처리합니다. 이 경우, yx의 순서가 중요하며, 모든 처리 과정에서 일관된 순서를 사용하는 것이 중요합니다.

아래의 질문은 (x, y)(i, j)의 사용법과 관련된 질문자님의 혼동을 다루고 있습니다. 이에 대한 구체적인 답변으로, 과거 질문 중에서 2-P 질문드립니다에서 비슷한 맥락의 질문에 대한 답변이 제공되었습니다. 이 답변에서는 DFS 구현 시, 특정 조건에서 왜 a[x][y] == 2를 포함시키지 않았는지에 대한 설명을 통해 xy의 사용법 및 배열 접근 방식에 대한 깊이 있는 이해를 돕고 있습니다.

질문자님의 혼란에 대해 좀 더 구체적인 해결책을 제공하기는 어려울 수 있으나, 코딩 및 알고리즘 문제를 풀 때는 (x, y)(i, j)의 순서를 명확히 구분하고 일관성 있게 사용하는 연습을 진행하는 것이 중요합니다. 또한, 각 좌표계 또는 참조 시스템이 가지고 있는 규칙을 정확히 이해하고, 문제에 적합한 방식으로 접근하는 연습이 필요합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ab님의 프로필 이미지
ab

작성한 질문수

질문하기