Algorithm/1일 1코테

[🥰프로그래머스] 로또의 최고 순위와 최저 순위

대인보우 2022. 2. 3. 17:36
반응형

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


 

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

 

코딩테스트 연습 - 로또의 최고 순위와 최저 순위

로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호

programmers.co.kr

 

 

내 풀이

def solution(lottos, win_nums):
    _zero = lottos.count(0) # 0의 갯수 
    _coincide = 0 # 일치하는 숫자 갯수
    rank = [0,6,5,4,3,2,1] # 로또 순위 -> 6개(index) 다 맞으면 1,,,
    
    # 일치하는 갯수 세기
    for number in lottos:
        if number in win_nums:
            _coincide += 1
	
    if _coincide == 6: # 모두 일치할 경우
        return [1,1]
    elif _coincide == 0 and _zero == 6: # 일치하는게 0인데 0가 6개 -> 1등도 가능
        return [1,6]
    elif _coincide == 0 and _zero == 0: # 일치하는게 0인데 0로 6개 -> 걍 꼴등
        return [6,6]
    else: # 나머지는 0(가능성)+일치 갯수, 일치 갯수
        return [rank[_zero+_coincide], rank[_coincide]]

 

다른 사람 풀이

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]

 

rank의 index 0 값만 6으로 바꿔주니 if문 다 지워도 가능했다~~!!!!ㅠㅠ 

반응형