강의

멘토링

커뮤니티

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

공부합시다님의 프로필 이미지
공부합시다

작성한 질문수

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

2주차 개념 #7. 맵과 방향벡터(direction vector)

안녕하세요 강사님! ny >= n 오버플로우 질문이 있습니다.

작성

·

354

0

2주차 개념 #7 맵과 방향벡터에서 18분28초에서 12번,13번 라인에 대한 질문입니다!

n이 3으로 주어졌을때 3x3배열에서 x와 y의 인덱스는 0부터 2까지인데 +1을해서 ny 또는 nx가 3이 될때, 이미 3초과에서 오버플로우가 발생하는데, ny == n 이 아닌 ny >= n 으로 작성하신 이유가 궁금합니다!

항상 감사합니다 큰돌님

질문이 서투른점 양해 부탁드립니다.

답변 1

1

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

안녕하세요. Daesoo님 ㅎㅎ

옳으신 말씀입니다. ==으로 해도 무방합니다.

그러나, 사실 저 코드는 제 1700문제를 푼 짬빱이 들어가 있는 코드입니다. 지금이야 단순하게 +1, -1 따위의 4방향을 기반으로 방향벡터가 설정되고 그걸 기반으로 맵을 탐색하지만 나중에 가면 다양한 문제를 맞이하게 되며 +1, +2, +3으로 설정되는 방향벡터 또한 마주치게 됩니다. 그렇게 되었을 때 == 이 아니라 >=으로 해서 저러한 경우의 수로 발생되는 오버플로를 모두 해결할 수 있습니다.

즉, 다양한 문제 또한 >= 만으로 쉽게 오버플로를 체크하는 좀 더 높은 커버력을 가진 코드라고 보시면 됩니다.

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

예리한 질문 감사합니다.

강사 큰돌 올림.

아! 이해했습니다. 아직 그래프 문제에 대한 경험이 전무하다보니 사고의 폭이 좁았습니다 ㅠ 친절한 설명 감사합니다.

공부합시다님의 프로필 이미지
공부합시다

작성한 질문수

질문하기