JavaScripts 문제

문제 49. 두 개 뽑아서 더하기(난이도 5)

kagan-draca 2024. 7. 31. 14:40

 

반복문을 아에 안 쓰고 만들어볼려고 시도 했지만

아에 안 쓰는건 불가능 한 것 같았다...

 

먼저,

numbers.sort().map((element, index) =>

{

})

로 정렬된 numbers 배열의 각 요소에 접근하고,

 

numbers.sort().map((element, index)=>

{
        for(let i = index + 1; i < numbers.length; i++)
        {
            if(!answer.includes(element + numbers[i]))
            {
                answer.push(element + numbers[i])   
            }
        }

})

index + 1 ~ numbers.length 만큼 반복하면서

answer.includes로 중복을 검사

answer에 element와 numbers[i]를 더한 값이

없으면 push()로 넣어줍니다.

 

그렇게 완성된 answer 배열을 answer.sort((a,b)=> a - b)로

재정렬하면서 return 해줍니다.

 

제출한 코드 :

 

function solution(numbers) 
{
    let answer = []
    numbers.sort().map((element, index)=>
    {
        for(let i = index + 1; i < numbers.length; i++)
        {
            if(!answer.includes(element + numbers[i]))
            {
                answer.push(element + numbers[i])   
            }
        }
    })
    return answer.sort((a,b)=> a-b)
}