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

하이·2022년 4월 25일
0

💣 문제

간략설명
1. 내가 산 로또 번호가 주어지고, 당첨 번호가 주어진다.
2. 내가 산 로또 번호는 0이 포함될 수 있다.
3. 0이 포함되면 0은 어떤 수든 될 수 있다.
4. 최고 등수와 최저 등수 구하여라

💬 나의 접근 방식

def solution(lottos, win_nums):
    zero_count = 0
    win_count = 0
    for e in lottos:
        if e == 0:
            zero_count += 1
        elif e in win_nums:
            win_count += 1

    high = 7 - win_count - zero_count
    low = 7 - win_count
    if high == 7:
        high = 6
    if low == 7:
        low = 6
    return [high, low]
  1. 최고 등수 = 내가 산 로또의 번호와 당첨 번호가 가장 많이 일치할 때. 따라서 최고 등수일 때 일치하는 수의 개수는 0의 개수 + 일치하는 수
  2. 최저 등수는 0이 모두 당첨 번호와 다른 경우. 따라서 현재 일치하는 수만 당첨번호와 일치할 때.

💯 제출 후 확인한 깔끔한 풀이

count함수로 0의 개수를 셀 수 있다는 점. answer를 배열화 한 등수를 이용해서 더 깔끔하게 구했다는 점. 이 두 가지 차이가 있었다.

나의 경우 zero_count를 count함수로 셀 수 있었다. 또 zero_count와 win_count를 더한 값을 이용해 정답을 구할 수 있었는데 신선한 접근 방식이었다. [6,6,5,4,3,2,1] 이라는 배열을 이용하면 다른 수식이 필요 없었다.

profile
안녕하세요

0개의 댓글

관련 채용 정보