[프로그래머스] 카드 뭉치 - 구현, 큐

jckim22·2023년 7월 12일
0

[ALGORITHM] STUDY (PS)

목록 보기
29/86

난이도

LEVEL 1

풀이 참고 여부

X

문제

문제 바로가기

문제 검토

순서가 정해져있으므로 항상 맨 앞에 것부터 비교하고 참이면 pop해줘서 다음 요소를 꺼낸다.
큐를 떠올려야 한다.

풀이(python)

Python

from collections import deque
def solution(cards1, cards2, goal):
    cards1,cards2,goal=deque(cards1),deque(cards2),deque(goal)
    c1,c2=cards1.popleft(),cards2.popleft() 
    check='Yes'
    while goal:
        g=goal.popleft()
        if g == c1:
            if cards1:
                c1=cards1.popleft()        
        elif g == c2:
            if cards2:
                c2=cards2.popleft()
        else:
            check='No'
            break
    return check
  1. 받은 리스트들을 전부 큐로 형변환한다.
  2. c1,c2,g 각각에 첫번째 요소들을 pop한다.
  3. goal에 요소가 없을 때까지 반복
  4. c1에서 같다면 c1.pop
  5. c2에서 같다면 c2.pop
  6. 둘 다 해당사항 없다면 check를 'No'로 바꾸고 break한다.

걸린 시간

10분 09초

총평

큐를 떠올릴 수 있다면 간단한 문제이다.

profile
개발/보안

0개의 댓글