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

개발자·2021년 12월 8일
0

알고리즘

목록 보기
4/5
post-thumbnail

파이썬을 이용한 알고리즘 공부 내용을 정리합니다.


문제


내 코드

def find0(lottos):
    cnt_0 = 0

    for i in lottos:
        if i == 0:
            cnt_0 += 1  
    return cnt_0

def solution(lottos, win_nums):
    answer = []
    win_cnt = 0
    cnt_0 = find0(lottos)

    for i in lottos:
        for j in win_nums:
            if i == j:
                win_cnt += 1

    if 7-(win_cnt+cnt_0) == 7:
        answer.append(6)
    else:
        answer.append(7-(win_cnt+cnt_0))

    if 7-win_cnt == 7:
        answer.append(6) 
    else:
        answer.append(7-win_cnt)

    return answer

모범 답안

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]

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

주요 내용

  • count()에 파라미터 던지는걸 몰라서 함수를 하나 더만들었다.
  • 배열만 잘 이용하면 굳이 if else 쓰지 않았어도 됐었다.

결과

나는 능이버섯이다.

profile
Beginner

0개의 댓글