내 코드
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 을 사용한 풀이