알고리즘 연습/구현, 문자열

[Lv.1 / 프로그래머스 / 파이썬] 카드 뭉치

김세진 2024. 8. 30. 12:36
반응형

 

 

 

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

풀이

 

  1. goal에 있는 단어를 순회하며 두 카드 뭉치의 맨 앞에 있는 단어가 일치하는 경우 꺼내서 사용한다.
  2. 두 카드 뭉치 모두에서 일치하는 단어가 없다면 No를 반환한다.
  3. goal을 모두 성공적으로 순회했다면 Yes를 반환한다.

 

두 카드 뭉치의 맨 앞에 있는 것부터 순차적으로 사용해야 하므로 스택으로 변형하여 pop()을 활용하였다.

 

def solution(cards1, cards2, goal):
    cards1 = cards1[::-1]
    cards2 = cards2[::-1]
    
    for word in goal:
        if cards1 and word == cards1[-1]:
            cards1.pop()
        elif cards2 and word == cards2[-1]:
            cards2.pop()
        else:
            return "No"
    
    return "Yes"

 

 

 

 

 

반응형