강의

멘토링

커뮤니티

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

푸룬님의 프로필 이미지
푸룬

작성한 질문수

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

7-M

7-M 입력받는 x,y 순서 질문있습니다.

작성

·

11

0

안녕하세요 선생님.

1강부터 수업들으면서 array 탐색시에 y,x 순으로 탐색하는게 습관이 되었는데요.

아래 코드처럼 입력받은 값도 y,x순으로 vector에 넣었더니 틀리게되었습니다.

http://boj.kr/e7250811d751462ea104cf814b2be989

코드에서 arr,base등의 탐색시에도 yx순으로 탐색하고있는데 왜 위의 vector만 xy순으로 입력해야 통과할까요..?

답변 3

1

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

안녕하세요 푸룬님 ㅎㅎ

이거 문제가 좀 헷갈리게 되어있긴 한데요.

문제에서 주어지는 x, y가 사실은 y, x로 주어지는 것과 같습니다.

예시를 드는 지문

각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 떨어진 칸의 개수, c는 가장 왼쪽으로부터 떨어진 칸의 개수이다. r과 c는 1부터 시작한다.

r, c는 y, x를 가리킵니다.

 

처음 두 개의 정수는 나무의 위치 (x, y)를 의미하고,

여기서 x = y, y = x가 되게 됩니다. (처음에 r, c로 설명을 했기 때문에)

 

따라서 즉, 입력에서 받은 (x,y)를 코드 내부의 (y,x)로 뒤집지 않아도 그대로 “행,열”처럼 취급하는 구조가 됩니다.

y, x 기반으로 하는 것 = 굿 이였지만

문제 지문을 기반으로 y, x 의 의미를 설정해야 합니다.

 

 


 

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

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

감사합니다.

강사 큰돌 올림.

 

0

푸룬님의 프로필 이미지
푸룬
질문자

감사합니다! 명쾌하게 이해가 되었습니다.

0

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

C++에서 2D 배열이나 벡터를 다룰 때, 접근 순서(y, x vs. x, y)는 문제의 요구사항과 입력 형태에 따라 달라질 수 있습니다. 일반적으로, 행렬을 표현할 때 [행][열]의 형태, 즉 [y][x] 형태로 접근하는 것이 일반적이나, 문제의 입력이 [나라별, 선수별]로 주어진다면 이를 맞추어 [x][y] 형태로 저장해야 할 경우도 있습니다.

따라서, 입력을 받거나 데이터를 저장할 때에는 문제의 요구사항을 잘 파악하여 어떤 순서로 데이터를 배치할지를 결정해야 합니다. 이런 순서를 잘못 맞추면 원하는 위치에 데이터가 저장되지 않아서 결과적으로 틀린 답이 나올 수 있습니다.

다음의 링크를 참고하여 추가적인 이해를 높이실 수 있습니다:

문제를 풀 때는 특히 입출력 예제와 요구사항을 철저히 살펴봐야 함을 권장드립니다. y, x 순으로 탐색 및 저장하는 것이 표준이긴 하지만, 실제로 문제의 입력 요구에 맞추는 것이 핵심입니다.

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

푸룬님의 프로필 이미지
푸룬

작성한 질문수

질문하기