인천의 자유인

[Python] 카드 뭉치 - 프로그래머스(Lv.1) 본문

Python/Python코딩테스트

[Python] 카드 뭉치 - 프로그래머스(Lv.1)

Youngook 2024. 7. 1. 08:58
728x90
반응형

 

반응형

 

 

나의 문제 풀이

def solution(cards1, cards2, goal):
    lis = []
    one = 0
    two = 0
    for i in range(len(goal)):
        if len(cards1)>one and goal[i] == cards1[one]:
            lis.append(cards1[one])
            one += 1
        elif len(cards2)>two and goal[i] == cards2[two]:
            lis.append(cards2[two])
            two += 1
    if lis == goal:
        return "Yes"
    return "No"

제가 택한 방법은 lis라는 빈 리스트에 하나씩 추가해서 최종적으로 goal과 비교해서 답을 구하는 방식입니다.

one,two 변수는 cards1과 cards2의 인덱스를 나타낼 때 씁니다.

먼저 for문을 사용해서 goal 리스트의 길이 만큼 루프를 돌립니다.

일단 cards1나 cards2를 넘어버리면 당연히 에러가 나기 때문에 one과 two 변수는 무조건 len(cards1), len(cards2)보단 작아야 한다는 조건을 내겁니다. lis에 goal[i]와 cards1[one]과 cards2[two]같다면 하나씩 추가를 합니다. 그리고 최종적으로 lis와 goal이 같다면 Yes를 return하고 그렇지 않으면 No를 리턴합니다.

 

한번 실행을 해보신 다음에 보시면 무엇인지 이해가 되실 것입니다.

728x90
반응형