인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

董泽涵님의 프로필 이미지
董泽涵

작성한 질문수

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

8. 일곱난쟁이

섹션1 8.일곱난쟁이

작성

·

202

0

강의를 잘 듣고 있습니다.

혼자서 공부할 때 정답 소스를 봐도 이해가 잘 안되었는데

강사님이 설명을 잘 하셔서 계속 따라 가고 있습니다.

섹션1 8.일곱난쟁이 소스를 봤는데 for문을 두개 실행했는데 

Map를 이용하면 1번만 for문을 실행하는 것을 시도하고 있는데

맞는지 한번 봐 주실 수 있나요?

function solution(arr){
    let answer = [];
    let index = [];
    let sum = arr.reduce((sum, ele)=>sum+ele, 0);
    let target = sum - 100;
    let map = new Map();
    for(let i = 0; i < arr.length; i++){
        if(!map.has(arr[i])){
            map.set(arr[i],i);
            if((target-arr[i] !== arr[i]) && map.has(target - arr[i])){
                let j = map.get(target-arr[i]);
                console.log(j);
                index.push(Math.max(i,j));
                index.push(Math.min(i,j));
                break;
            }
        }
    }
    console.log(map);
    arr.splice(index[0],1);
    arr.splice(index[1],1);
    answer = arr;
    return answer;
}

console.log(solution([20, 7, 23, 19, 10, 15, 25, 8, 13]));

답변 1

0

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

안녕하세요^^

네. 잘 하셨습니다. 아무 문제 없어 보입니다.

董泽涵님의 프로필 이미지
董泽涵

작성한 질문수

질문하기