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
'코딩테스트 연습' 카테고리의 다른 글
[파이썬] 프로그래머스: 셔틀버스 (0) | 2023.03.21 |
---|---|
[파이썬] 프로그래머스: 파일명 정렬 / 정규식, split, 구분자유지 (0) | 2023.03.21 |
[파이썬] 프로그래머스: 과일 장수 (0) | 2023.03.21 |
[파이썬] 프로그래머스: 삼총사 / 조합 (0) | 2023.03.20 |
[알고리즘]DFS, BFS 연습문제 (0) | 2023.03.15 |