JavaScripts 문제

문제 55. 카드 뭉치(난이도 7)(shift)

kagan-draca 2024. 8. 2. 16:33

 

goal의 element가 cards1이나 cards2의

index 0번지 요소랑 같은지 비교하고,

해당 card의 index 0번지 요소를 제거하면

되는 문제였다.

 

먼저,

 

goal.map((element)=>

{

 

})

goal의 요소를 가져오고,

map 함수 내부에

 

if(element == cards1[0]) cards1.shift()
else if(element == cards2[0]) cards2.shift()

을 넣어 element와 cards1이나 cards2의

0번지 요소가 같으면 shilft함수로 제거해줬다.

 

배열의 요소를 제거하는 방법으로는

 

delete 배열[인덱스], splice, slice, filter, shift(첫 인덱스 요소 제거)

(상황에 따라 선택해서 사용하면 된다)

 

등으로 다양하게 제거 가능한데,

 

(중요)

delete 배열[인덱스]은 해당 요소만 지우고

인덱스는 지우지 않아서,

해당 인덱스에 "empty"가 남는다.

(중요)

 

현재 상황에서 제일 간단한

shift()함수로 card의 index 0번지

index와 element를 제거했다.

 

제출한 코드 :

 

function solution(cards1, cards2, goal) 
{
    let check = true
    goal.map((element)=>
    {
        if(element == cards1[0]) cards1.shift()
        else if(element == cards2[0]) cards2.shift()
        else check = false
    })
    return check ? "Yes" : "No"
}