jaehun4706   1년 전

안녕하세요. 대부분의 문제에서 번호가 1부터 시작하다보니, 일반적으로 배열의 크기를 N+1로 설정하고 1~N까지의 주소로 접근을 하게 되는데요

이 때 문제를 풀 때마다 헷갈리는 부분이, 만약 0~N-1로 했다면, +와 % 연산을 사용한다고 했을떄, 배열의 크기를 초과했을 때, 예를 들어  arr[A] = arr[A+5]를 할 때 A+5가 N-1을 넘어버리면, index 범위를 벗어나니 arr[(A+5)%N]을 해버리는데, 만약 1~N까지의 index만 사용한다고 하면 저런 식을 어떻게 세워야하나요?

(A+5)%(N+1)로 해버리면 0번째 index도 나오게되는데 이럴 때 어떻게 하시나요?

seawon0808   1년 전

0일 때만 따로 처리를 해 주시면 됩니다.

jaehun4706   1년 전

아 식으로 깔끔하게 되는 법이 있나했는데 예외처리로 하는게 정상적인 방법이었군요 감사합니다.

kiwiyou   1년 전

(A+5-1)%N+1을 쓰시면 됩니다.

jaehun4706   1년 전

아하 그렇게 하면 식이랑 코드가 좀 깔끔해지겠네요 감사합니다!

댓글을 작성하려면 로그인해야 합니다.