본문 바로가기
💻 하나씩 차곡차곡/프로그래머스 (Python)

[프로그래머스/python/Lv1] [1차] 다트 게임

by 뚜루리 2023. 12. 25.
728x90
320x100
def solution(lottos, win_nums):
    answer = []

    winNumCnt = 0
    for i in lottos:
        for j in win_nums:
            if i == j :
                winNumCnt += 1

    zeroCnt = 0            
    for i in lottos:
        if i == 0:
            zeroCnt += 1
    print(winNumCnt, zeroCnt)

    totalCnt1 = winNumCnt + zeroCnt
    if totalCnt1 == 6:
        answer.append(1)
    elif totalCnt1 == 5:
        answer.append(2)
    elif totalCnt1 == 4:
        answer.append(3)
    elif totalCnt1 == 3:
        answer.append(4)
    elif totalCnt1 == 2:
        answer.append(5)
    else :
        answer.append(6)

    totalCnt2 = winNumCnt
    if totalCnt2 == 6:
        answer.append(1)
    elif totalCnt2 == 5:
        answer.append(2)
    elif totalCnt2 == 4:
        answer.append(3)
    elif totalCnt2 == 3:
        answer.append(4)
    elif totalCnt2 == 2:
        answer.append(5)
    else :
        answer.append(6)

    return answer

이케 길다랗게 풀었는데 풀렸음. 근데....뭔가 좀 개선된 버전이 궁금해졌음. 

 

(+) 다른 사람 풀이

def solution(lottos, win_nums):

    rank=[6,6,5,4,3,2,1]

    cnt_0 = lottos.count(0)
    ans = 0
    for x in win_nums:
        if x in lottos:
            ans += 1
    return rank[cnt_0 + ans],rank[ans]

배열 인덱스를 로또 맞춘 갯수로 활용하여 이렇게 간단하게 할수도 있더라 힝힝

728x90
320x100