문제
로또 번호로 가능한 최고 등수와 최저 등수를 리턴하는 문제이다.
로또 숫자는 1~45인데, 0인 경우는 알아볼 수 없는 숫자이다.
그래서 0의 개수에 따라 가능한 최고 등수가 바뀐다.
14번 케이스만 계속 틀려서 시간이 좀 걸렸는데 0의 개수도 없고 6개 다 틀린경우를
생각하지 못했다ㅠ 어떤 문제든 제약사항을 잘 고려해야 하는 것 같다.
풀이 (Python)
def solution(lottos, win_nums):
#0 없앰
notzero = set(lottos)
if 0 in notzero: notzero.remove(0) #0이 한개일 경우
if len(notzero)==0: return [1,6]
zero_cnt = len(lottos) - len(notzero) #0 개수
lotto_len = len(set(win_nums)-set(notzero)) #1등과 차이 개수
if lotto_len==0: return [1,1]
elif zero_cnt==0 and lotto_len==6: return [6,6]
else:
if zero_cnt==0: return [lotto_len+1,lotto_len+1]
else: return [lotto_len-zero_cnt+1,lotto_len+1]
'Problem Solving > Programmers' 카테고리의 다른 글
프로그래머스 (Level 1) : 신규 아이디 추천 / Python / 2021 KAKAO BLIND RECRUITMENT (0) | 2022.08.09 |
---|---|
프로그래머스 (Level 1) : 3진법 뒤집기 / Python / 월간 코드 챌린지 시즌1 (0) | 2022.07.10 |
프로그래머스 (Level 1) : 폰켓몬 / Python, set / 찾아라 프로그래밍 마에스터 (0) | 2022.05.15 |
프로그래머스 (Level 1) : 신고 결과 받기 / Python / 2022 KAKAO BLIND RECRUITMENT (1) | 2022.05.12 |
프로그래머스 (Level 1) : 크레인 인형뽑기/ Python / 2019 카카오 개발자 겨울 인턴십 코딩테스트 (0) | 2022.05.11 |