강의

멘토링

로드맵

Inflearn brand logo image

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

rlgus4531님의 프로필 이미지
rlgus4531

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

1. 큰 수 출력하기

인덱스접근방식에 대해 질문 있습니다.

작성

·

75

0

첫번째 수는 그대로 넣고

for(int i = 1; i < arr.length -1; i++){

if (arr[i] < arr[i+1]) {

//

}

}

이런 식으로 했는데 출력은 똑같이 나오는데 오답이 떠서 왜 정답이 안되는지 모르겠어요

어차피 마지막 인덱스는 마지막 인덱스 -1번째하고만 비교하면 되니까 상관없지 않나요??

즉 마지막 인덱스 -1(i)보다 마지막 인덱스(i+1)이 크다면 출력에 넣고 아니면 출력에 안 넣고 이런 식으로 생각했는데 이게 틀린 답인가요?

답변 2

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

오답이 나오는 풀코드를 "코드블록" 버튼을 이용해서 텍스트로 올려주시면 확인해 보겠습니다.

0

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

질문 주신 Java 코드에서 인덱스 접근 방식에 대해 궁금해하시는 점을 이해했습니다. 먼저 잘못된 부분을 확인하기 위해서는 코드를 통해 해당 구현이 특정 테스트 케이스에서 어떻게 동작하는지 살펴보는 것이 중요합니다. 인덱스 접근 방식에서 주의해야 할 점은 배열의 경계와 관련된 오류인데, 특히 접근할 수 없는 인덱스에 접근하려고 할 때가 있습니다.

문제 설명:

  • 주어진 코드에서 for(int i = 1; i < arr.length -1; i++) 루프를 사용할 때, arr[i+1]을 접근하여 비교하고 있습니다. 여기서 i < arr.length - 1로 되어 있기 때문에 arr[i+1]은 배열의 범위를 초과할 수 있습니다.

해결 방법:

  • arr[i+1]에 접근하기 위해서는 for(int i = 0; i < arr.length - 1; i++)와 같이 루프를 설정해야 합니다. 이렇게 하면 마지막 인덱스를 비교하는 상황에서도 문제가 발생하지 않으며, 배열 끝까지 비교를 올바르게 진행할 수 있습니다.

유사한 문제나 답변을 확인하기에는 아래의 인터넷 자료가 참고가 될 수 있을 것입니다. Java에서 배열을 다루는 일반적인 방법에 대한 질문들이 많이 있으니 확인해 보세요.

Java의 인덱스 관련 루프 처리에 대한 Q&A

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

rlgus4531님의 프로필 이미지
rlgus4531

작성한 질문수

질문하기