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

furler711님의 프로필 이미지
furler711

작성한 질문수

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

8. 일곱난쟁이

for 조건에서 배열의 길이 질문드리겠습니다.

작성

·

210

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부터 처리해야 하는지 영상에 나와 있습니다.

furler711님의 프로필 이미지
furler711
질문자

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

furler711님의 프로필 이미지
furler711

작성한 질문수

질문하기