문제
https://programmers.co.kr/learn/courses/30/lessons/77484
코딩테스트 연습 - 로또의 최고 순위와 최저 순위
로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호
programmers.co.kr
풀이
1) 반복문 이용
def solution(lottos, win_nums):
low, high = 0, 0
correct_count = 0
unknown_num = lottos.count(0)
for n in win_nums:
if n in lottos:
correct_count += 1
if unknown_num == 6:
return [1,6]
elif correct_count == 0:
return [6,6]
if correct_count > correct_count + unknown_num:
low = 7 - (correct_count + unknown_num)
high = 7 - correct_count
else :
low = 7 - (correct_count + unknown_num)
high = 7 - correct_count
return [low, high]
2) set 교집합
def solution(lottos, win_nums):
unknown_num = lottos.count(0)
correct_count = len(list(set(lottos) & set(win_nums)))
if unknown_num == 6:
return [1,6]
elif correct_count == 0:
return [6,6]
answer = sorted([7 - (correct_count + unknown_num), 7 - correct_count])
return answer
'⏳ 알고리즘 > python 알고리즘 문제 풀이' 카테고리의 다른 글
프로그래머스 - LV2. 더 맵게 (0) | 2021.11.06 |
---|---|
프로그래머스 - 숫자 문자열과 영단어( 2021 카카오 채용연계형 인턴십 ) (0) | 2021.10.31 |
리트코드 - 19.Remove Nth Node From End of List (0) | 2021.08.29 |
프로그래머스 - LV3. 베스트앨범 (0) | 2021.06.15 |
프로그래머스 - [1차] 뉴스 클러스터링(카카오 2018 블라인드 채용) (0) | 2021.06.11 |