[프로그래머스] 카드 뭉치 / JavaScript / Level 1

KimYoungWoong·2023년 3월 7일
0

Programmers

목록 보기
58/60
post-thumbnail

🚩문제 주소


📄 풀이

그리디

  1. goal 배열의 길이 만큼 반복합니다.

  2. cards1cards2의 첫 번째 요소가 goal의 요소와 같지 않다면 더 이상 만들 수 없다는 것이므로 즉시 No를 반환합니다.

  3. 같다면 요소가 있는 cards 배열에서 shift()로 앞 요소를 제거합니다. 그리고 continue로 넘어갑니다.

  4. No가 반환되지 않고 모두 진행되었다는 것은 goal 배열을 만들 수 있는 것이므로 Yes를 반환합니다.



👨‍💻 코드

function solution(cards1, cards2, goal) {
  for (let i = 0; i < goal.length; i++) {
    if (cards1[0] !== goal[i] && cards2[0] !== goal[i]) return "No";
    else {
      if (cards1[0] === goal[i]) {
        cards1.shift();
        continue;
      } else {
        cards2.shift();
        continue;
      }
    }
  }
  return "Yes";
}

profile
블로그 이전했습니다!! https://highero.tistory.com

0개의 댓글