[프로그래머스] 로또의 최고 순위와 최저 순위 (파이썬)

뚝딱이·2022년 4월 28일
0
post-thumbnail

출처: 프로그래머스


문제



나의 답안

def solution(lottos, win_nums):
    answer = [0,0]#결과 저장
    num=[6,6,5,4,3,2,1]#6등 이하~1등 순서
    
    cnt=0
    zero=lottos.count(0)
    for i in lottos:
        if i in win_nums:
            cnt+=1
    answer[0]=num[zero+cnt]#최대값
    answer[1]=num[cnt]#최소값
    
    return answer
lottos=list(map(int,input().split()))
win_nums=list(map(int,input().split()))

print(solution(lottos,win_nums))

접근 방법

  • 등수를 저장하는 배열을 선언한다. 순위를 계산하기 위해 인덱스 0은 6으로 선언해준다(어차피 1개 이하는 6등이다).
  • 이후 반복문을 통해 두 배열을 비교하면 된다. cnt변수를 두어 로또번호와 일치하면 1을 증가시키고, 해당 값을 인덱스로 넣어주면 된다.

처음에는 반복문을 하나 더 두어 lottos의 0의 개수를 세서 풀었다. 그러나 다른 분의 풀이를 확인하게 되었고 위와같은 코드로 수정 후 제출하게 되었다.
count()함수를 사용한 게 인상깊었다.

0개의 댓글

관련 채용 정보