로또의 최고 순위와 최저 순위

Kylie·2022년 12월 26일
0

프로그래머스 Lv.1

목록 보기
54/69

내 코드

def solution(lottos, win_nums):
    uni = set(lottos) & set(win_nums)
    z = lottos.count(0)
    M = len(uni) + z
    m = len(uni)
'''
    dic = [6, 6, 5, 4, 3, 2, 1]
'''
    return dic[M], dic[m]    

+6

테스트 1 〉 통과 (0.01ms, 10.2MB)
테스트 2 〉 통과 (0.00ms, 10.1MB)
테스트 3 〉 통과 (0.01ms, 10.1MB)
테스트 4 〉 통과 (0.01ms, 10.4MB)
테스트 5 〉 통과 (0.01ms, 10.1MB)
테스트 6 〉 통과 (0.01ms, 10.2MB)
테스트 7 〉 통과 (0.00ms, 10.3MB)
테스트 8 〉 통과 (0.01ms, 10.3MB)
테스트 9 〉 통과 (0.01ms, 10.2MB)
테스트 10 〉 통과 (0.01ms, 10.3MB)
테스트 11 〉 통과 (0.01ms, 10.2MB)
테스트 12 〉 통과 (0.01ms, 10.1MB)
테스트 13 〉 통과 (0.00ms, 10.2MB)
테스트 14 〉 통과 (0.01ms, 10.1MB)
테스트 15 〉 통과 (0.01ms, 10.2MB)

다른 풀이

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]

for 문을 쓰면 시간 측에서 불리할 줄 알았는데, 항상 그런건 아닌 것 같다

테스트 1 〉 통과 (0.00ms, 10.1MB)
테스트 2 〉 통과 (0.00ms, 10.2MB)
테스트 3 〉 통과 (0.01ms, 10.1MB)
테스트 4 〉 통과 (0.00ms, 10.3MB)
테스트 5 〉 통과 (0.00ms, 10.3MB)
테스트 6 〉 통과 (0.00ms, 10.4MB)
테스트 7 〉 통과 (0.00ms, 10.2MB)
테스트 8 〉 통과 (0.00ms, 10.2MB)
테스트 9 〉 통과 (0.00ms, 10.2MB)
테스트 10 〉 통과 (0.00ms, 10.2MB)
테스트 11 〉 통과 (0.00ms, 10.2MB)
테스트 12 〉 통과 (0.00ms, 10.2MB)
테스트 13 〉 통과 (0.00ms, 10.3MB)
테스트 14 〉 통과 (0.00ms, 10.2MB)
테스트 15 〉 통과 (0.00ms, 10.2MB)

다른 풀이

def solution(lottos, win_nums):
    zero = lottos.count(0)
    a= [x for x in lottos if x in win_nums]
    max = zero+len(a)
    min = len(a)
'''
    max = 7- max if max >=1 else 6
    min = 7- min if min >=1 else 6
    return [max,min]

나의 첫 아이디어인 7-M 을 사용한 풀이

profile
딥린이

0개의 댓글