본문 바로가기

PS/프로그래머스

[프로그래머스] 카드뭉치

반응형

카드뭉치

문제 설명

def solution(cards1: List[str], cards2: List[str], goal: List[str]) -> str:
        ...

영단어로 이루어진 두 배열 cards1cards2 를 번갈아가며 연속된 카드를 뽑아 goal 을 만들 수 있는지 여부를 반환하면 된다.

제한사항

  • 1 ≤ cards1의 길이, cards2의 길이 ≤ 10
    • 1 ≤ cards1[i]의 길이, cards2[i]의 길이 ≤ 10
    • cards1cards2에는 서로 다른 단어만 존재합니다.
  • 2 ≤ goal의 길이 ≤ cards1의 길이 + cards2의 길이
    • 1 ≤ goal[i]의 길이 ≤ 10
    • goal의 원소는 cards1cards2의 원소들로만 이루어져 있습니다.
  • cards1, cards2, goal의 문자열들은 모두 알파벳 소문자로만 이루어져 있습니다.

풀이

while문을 사용해 goal 배열의 원소를 삭제해가며 확인했다.

제출 코드

def solution(cards1: List[str], cards2: List[str], goal: List[str]) -> str:
    while goal:
        if cards1 and cards1[0] == goal[0]:
            cards1.pop(0)
            goal.pop(0)
        elif cards2 and cards2[0] == goal[0]:
            cards2.pop(0)
            goal.pop(0)
        else:
            break

    return "Yes" if not goal else "No"
반응형