본문 바로가기

Algorithm/Implementation

(Python3) - 프로그래머스(연습문제): 카드 뭉치

반응형

https://school.programmers.co.kr/learn/courses/30/lessons/159994

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

cards1의 index idx1, cards2의 index idx2를 선언 후 0, 0으로 각각 초기화합니다.

📔 풀이과정

goal의 원소를 순회하며 다음을 진행합니다.1. cards1의 idx1번째 원소가 현재 goal의 문자열과 같다면 바로 뽑아주고 idx1을 1증가시킵니다.2. 이외에 cards2의 idx2번째 원소가 같다면 idx2를 증가시킵니다.3. 1,2번 경우 모두 아니라면 뽑을 수 없으므로 No를 반환합니다.찾는다면 해당 index를 증가시키는 방식이 번갈아 카드 뭉치를 뽑게 되는 것과 동작이 같아 별다른 flag없이 맞는 답이 됩니다.

📔 정답 출력 | 반환

Yes를 반환합니다.


📕 Code

📔 Python3

def solution(cards1, cards2, goal):
    idx1, idx2 = 0, 0
    for word in goal:
        if idx1 < len(cards1) and cards1[idx1] == word:
            idx1 += 1
        elif idx2 < len(cards2) and cards2[idx2] == word:
            idx2 += 1
        else:
            return "No"
    return "Yes"

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.