로또의 최고 순위와 최저 순위
답:
더보기
def lotto_ranking(number):
"""등수를 만들어주는 함수"""
if number == 1 or number == 0:
return 6
elif number == 2:
return 5
elif number == 3:
return 4
elif number == 4:
return 3
elif number == 5:
return 2
else:
return 1
def solution(lottos, win_nums):
answer = []
lottos.sort()
win_nums.sort()
count = 0
zero_count = 0
for num in lottos:
if num == 0:
zero_count += 1
if num in win_nums:
count += 1
if zero_count == 0 and count == 6:
return [1, 1]
elif zero_count == 6:
return [1, 6]
answer.append(lotto_ranking(count + zero_count))
answer.append(lotto_ranking(count))
return answer return 6
elif number == 2:
return 5
elif number == 3:
return 4
elif number == 4:
return 3
elif number == 5:
return 2
else:
return 1
def solution(lottos, win_nums):
answer = []
lottos.sort()
win_nums.sort()
count = 0
zero_count = 0
for num in lottos:
if num == 0:
zero_count += 1
if num in win_nums:
count += 1
# 예외 :
# zero가 0이고 count 가 6인 경우 무조건 1등, [1, 1]
# zero 가 6인 경우 [1, 6]
if zero_count == 0 and count == 6:
return [1, 1]
elif zero_count == 6:
return [1, 6]
# count개수에 따라 등수 매겨주기
answer.append(lotto_ranking(count + zero_count))
answer.append(lotto_ranking(count))
return answer
다른사람의 풀이
와앙 index로 풀이할 수있지 않을까 하긴했지만 충격적 깔끔함
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]
문제 분석 및 해석
로또.
알아볼 수 없는 번호 0
1 - 45 구매한 로또번호,
당첨가능한 최고 순위와 최저순위의 예
로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums
당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return
입출력
lottos win_nums result
[44, 1, 0, 0, 31, 25] [31, 10, 45, 1, 6, 19] [3, 5]
>> 풀이생각
차례로 정렬하기
해당 요소 각각 list 비교하기
0개수 확인, zero_count 만들어두기
일치하는 것이 있는 경우 count +해주기
count 개수에 따라 zero_count더해 result[0], count로 result[1]만들어주기,
리뷰.
테스트케이스 14번을 힌트를 보고 해결했다.
베스트, 워스트케이스 모두 6등인 경우를 고려하여 lotto_ranking에 number가 0일 경우도 적어주어야했던 것..
휴먼에러에 주의하자
'알고리즘 풀이' 카테고리의 다른 글
[알고리즘] 프로그래머스 | 숫자의 표현 (0) | 2023.08.24 |
---|---|
[알고리즘] 프로그래머스 | 체육복 lv.1 (0) | 2023.08.23 |
[알고리즘] 프로그래머스 | 피보나치 수열 (0) | 2023.08.19 |
[알고리즘] 프로그래머스 | 둘만의 암호 (0) | 2023.08.18 |
[알고리즘] 프로그래머스 | 신규 아이디 추천 (0) | 2023.08.17 |