코딩테스트 연습

[파이썬] 프로그래머스: 카드뭉치

콩콩(๓° ˘ °๓)♡ 2023. 3. 21. 14:57

goals의 단어를 하나씩 돌면서 card1또는 cards2 뭉치의 맨앞 단어와 일치하는지 확인하고

일치한다면 삭제하여 다음 단어가 맨 앞으로 오게 만들어준다.

카드 뭉치 내에서 순서를 바꿔 탐색할 필요가 없으므로

두 카드뭉치 모두 이용할 수 없다면 바로 No를 출력하고 종료하도록 한다.

def solution(cards1, cards2, goal):
    for i in goal:
        if len(cards1) and i == cards1[0]:
            del cards1[0]
        elif len(cards2) and i == cards2[0]:
            del cards2[0]
        else:
            return 'No'     
    return 'Yes'

point1. 조건문에서 각 카드 뭉치가 비어있지는 않은지 미리 확인하기 위해 len(cards1),len(cards2)를 and 연산자 앞에 넣어주었다. 이 조건이 없으면 카드 뭉치가 비어있는 경우 index error가 발생한다. 카드 뭉치가 비어있다면 false가 반환되기 때문에 and 뒤의 조건문은 저절로 패스된다.

point2. else: 에서 해당 함수를 바로 종료시키기 위해 answer에 값을 넣어서 반환하는 것이 아닌 return을 직접적으로 넣어주었다.

 

프로그래머스

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

programmers.co.kr