[프로그래머스] 카드 뭉치

Hyun·2023년 6월 17일
0

프로그래머스

목록 보기
9/32

문제 설명

영어 단어가 적힌 카드 뭉치 2개
(조건)
-원하는 카드 뭉치에서 카드 순서대로 한장씩 사용
-한번 사용한 카드는 재사용 불가
-카드를 사용하지 않고 다음 카드로 넘어갈 수 없음
-기존에 주어진 카드 뭉치의 단어 순서 못바꿈

문자열 배열 card1, card2 & 원하는 문자열 순서 배열 goal
조건을 만족하면서 card1, card2를 이용해 문자열 순서 배열 goal을
구현할 수 있으면 "Yes", 없으면 "NO"

문제 풀이

큐 방법, card1, card2의 배열 앞부분에서만 빼면 되므로
1. goal 배열을 돌면서 원소가 card1,2의 맨앞원소에 있는지 확인하는데
if goal의 원소가 card1,2 배열의 맨앞 원소와 모두 일치하지 않으면 return "NO"
*예외 케이스로 배열의 길이가 0일때도 고려해줘야 함(0이면 조건문 벗어남, 아예 판별이 불가하므로)
else 있으면 해당 배열에서 제일 앞 원소 삭제함
2. 위 과정을 반복함
3. goal 배열 다 돌았다면 for문 빠져나온 후에 return "Yes"

def solution(cards1, cards2, goal):
    for goal_word in goal:
        if len(cards1) != 0 and goal_word == cards1[0]:
            del cards1[0]
        elif len(cards2) != 0 and goal_word == cards2[0]:
            del cards2[0]
        else: return "No"
    return "Yes"
profile
better than yesterday

0개의 댓글