본문 바로가기
Otter's [ 개발새발 ]/# 코딩테스트 - Programmers

[Programmers 코딩테스트 연습_Lv1_Python] 로또의 최고 순위와 최저 순위

by byeonPig 2022. 5. 31.

주소: https://programmers.co.kr/learn/courses/30/lessons/77484

[ 문제 ]

 

[ 나의 귀여운 풀이 ]

def solution(lottos, win_nums):
    answer = []

    zero_num = lottos.count(0)

    cnt = 0

    for i in range(len(lottos)):
        if lottos[i] in win_nums:
            cnt += 1

    if cnt >= 2:
        min = 7 - cnt
    if cnt < 2:
        min = 6

    max = min - zero_num

    if max <= 0:
        max = 1

    answer.append(max)
    answer.append(min)

    return answer

 

[ 다른 분들의 유려한 코드 ]

def solution(lottos, win_nums):
    answer = []
    rank = [6, 6, 5, 4, 3, 2, 1]
    zero_num = lottos.count(0)

    cnt = 0

    for i in range(len(lottos)):
        if lottos[i] in win_nums:
            cnt += 1

    min = rank[cnt]
    max = rank[cnt + zero_num]

    answer.append(max)
    answer.append(min)

    return answer

 

[ 배운 것 ]

1. rank 배열 사용: 조건문을 사용하는 대신 배열을 사용했다면 코드도 훨씬 간결하고, 연산을 몇 번이라도 줄일 수 있을 것 같다.

 

 

꾸준히 열심히!