얼음녹차의 블로그
article thumbnail

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/159994

 

프로그래머스

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

programmers.co.kr

코딩테스트를 준비하면서 추가  라이브러리를 사용하지 않아야겠다는 생각이 있었지만, 최근에는 기초 실력이 늘어나게 되면서 여러 기본적인 라이브러리를 사용하는 것으로 생각이 바뀌었다.

그 중에서 이번 문제를 풀게되면서 사용하게 된 deque도 그러하다. 

앞으로 많이 사용할 거 같으니 라이브러리 사용방법에 대해 다른 글을 통해 정리를 해보려고한다.

 

처음 작성한 코드

  • List를 deque로 변환
  • 비교하기전에 deque에서 popleft()를 통해 변수를 가져오기
  • Deque가 빈 것을 if문으로 확인해주어 empty deque에서 값을 가져오지 않기
from collections import deque

def solution(cards1, cards2, goal):
    cards1 = deque(cards1)
    cards2 = deque(cards2)
    c1, c2 = cards1.popleft(), cards2.popleft()
    for i in goal:
        if i == c1:
            if cards1:
                c1 = cards1.popleft()
        elif i == c2:
            if cards2:
                c2 = cards2.popleft()
        else:
            return "No"
    return "Yes"

# 입출력 예시
print(solution(["i", "drink", "water"], ["want", "to"], ["i", "want", "to", "drink", "water"]))
print(solution(["i", "water", "drink"], ["want", "to"], ["i", "want", "to", "drink", "water"]))

 

profile

얼음녹차의 블로그

@PERIR

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!