오랑우탄의 반란

프로그래머스 | 로또의 최고 순위와 최저 순위 (파이썬) 리스트 사용 본문

PYTHON/프로그래머스

프로그래머스 | 로또의 최고 순위와 최저 순위 (파이썬) 리스트 사용

5&2 2024. 8. 7. 13:57
반응형

 

오늘도 오랑이는 문제를 풉니다.

 

 

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

 

풀이 과정

간단한 문제인데요, 조건을 정리하면 아래와 같습니다.

  • lottos와 win_nums 비교
  • 일치 번호 개수 = 최저 순위 결정
  • 일치 번호 개수 + 0인 개수 = 최고 순위 결정

우선 lottos 와 win_nums 를 비교해서 최고/최저 순위가 될 번호의 개수를 각각 세어봅니다. 

count = 0
for i in lottos:
    for j in win_nums:
        if i==j:
            count += 1  # 일치하는 번호 개수

count + lottos.count(0) # 일치하는 번호 개수 + 0의 개수

 

이제 순위만 결정하면 되는데요, 번호 개수가 인덱스가 되도록 리스트를 작성해줍니다.

0, 1 개를 맞췄을 때 동일하게 6위이기 때문에 6을 2개 넣어줍니다. 

rank = [6,6,5,4,3,2,1]
answer = [rank[(count + lottos.count(0))], rank[count]]

 

 

최종 코드

def solution(lottos, win_nums):
    count = 0
    rank = [6,6,5,4,3,2,1]
    
    for i in lottos:
        for j in win_nums:
            if i==j:
                count += 1
    answer = [rank[(count + lottos.count(0))], rank[count]]
    return answer

 

 

나중에 생각났지만 i와 j를 하나하나 비교하는 대신 i가 win_nums에 있는지 확인하면 더 간편한 코드가 됩니다. 

def solution(lottos, win_nums):
    count = 0
    rank = [6,6,5,4,3,2,1]
    
    for i in lottos:
        if i in win_nums:
            count += 1
    answer = [rank[(count + lottos.count(0))], rank[count]]
    return answer

 

 


 

오랑우탄이 영어를 하고 오랑이가 코드마스터가 되는 그날까지~

 

 

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

반응형