인프런 커뮤니티 질문&답변
for 조건에서 배열의 길이 질문드리겠습니다.
작성
·
257
0
for 조건에서 이 문제에서는 배열의 길이가 주어졌지만, 혹시나 배열의 길이가 유동적일 때를 대비하여 arr.length로 주었는데 이 부분에서 결과값이 제대로 나오지 않는데 어떤 부분때문인지 잘 모르겠어서 질문드립니다.
for(let i = 0; i < (arr.length - 1); i++) {
for(let j = i + 1; j < arr.length; j++) {
if ((sum - (i + j)) == 100) {
arr.splice(i, 1);
arr.splice(j, 1);
}
}
}
이때 arr.length로 처리한 부분만 8, 9로 바꾸면 문제없이 값이 출력되는데 저렇게쓰면 어떤부분에서 오류인건지 잘 모르겠습니다. ㅜㅜ
답변 1
0
김태원
지식공유자
안녕하세요^^
위 코드는 8, 9로 바꿔도 안나올 코드같은데 나온다고 하니 이상하네요. 풀코드를 보여주셔야 판단을 할 수 있을 것 같지만, 일단 if문에 오류가 있는 것 같습니다.
if((sum-(arr[i]+arr[j]))==100) 로 하셔야 할 것 같습니다.
그리고 splice 도 j 먼저 처리하세요. 왜 j부터 처리해야 하는지 영상에 나와 있습니다.






if문에 오류가 있었네요 arr[i], arr[j]부분 수정 후 정상적으로 출력됩니다. 감사합니다