PS/프로그래머스

[Python] 카드 뭉치

s_omi 2024. 10. 26. 09:52

✏️ 문제

 

문제 파악

처음에는 차례대로 있는 지가 중요한 거니까 cards1과 cards2의 카드들이 goal에 나타나는 순서와 일치하는지 확인하는 코드를 짰다.

goal에 나타나는 cards1과 cards2 카드들이 각각 올바른 순서대로 존재한다면 "Yes"를 반환하고 순서가 틀리면 "No"를 반환하도록 했는데 20, 21, 24, 25번 테스트에서 런타임 에러가 떴었다 .. 딕셔너리를 써서 제출해도 똑같았다.. 

 

그래서 goal의 배열 값이 cards1 또는 cards2에 있다면 맨 앞 값을 없애는.. 방향으로 코드를 짰다.

이때 배열의 맨 앞 값을 없애는 코드는 다음과 같다.

ary.pop(0)

 

 

 

코드

  • 런타임 에러 코드
def solution(cards1, cards2, goal):
    for i in range(len(cards1) - 1):
        if goal.index(cards1[i]) > goal.index(cards1[i+1]) :
            return "No"
        
    for i in range(len(cards2) - 1):
        if goal.index(cards2[i]) > goal.index(cards2[i+1]) :
            return "No"
        
    return "Yes"
  • 정답 코드
def solution(cards1, cards2, goal):
    for g in goal:
        if len(cards1) > 0 and g == cards1[0]:
            cards1.pop(0)       
        elif len(cards2) > 0 and g == cards2[0]:
            cards2.pop(0)
        else:
            return "No"
    return "Yes"

 

 

 

 

'PS > 프로그래머스' 카테고리의 다른 글

[Python] 9번 / 지폐 접기  (0) 2024.10.27
[Python] [1차] 다트 게임  (3) 2024.10.27
[Python] 추억 점수  (2) 2024.10.26
[Python] 덧칠하기  (1) 2024.10.26
[Python] 옹알이 (2)  (0) 2024.10.26