Notice
Recent Posts
Link
- Today
- Total
hye-log
[프로그래머스]로또의 최고 순위와 최저 순위(Python) 본문
0. 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/77484?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 설명
1) 구매한 번호에서 당첨 개수, 알아볼 수 없는 번호(0) 개수 찾기
2) 가능한 최고 등수, 최저 등수 반환하기
2. 입출력
# input
lottos = [44, 1, 0, 0, 31, 25]
win_nums = [31, 10, 45, 1, 6, 19]
# output
result = [3, 5]
3. 코드
1) 첫 번째 코드
def solution(lottos, win_nums):
# lottos : 구매한 번호
# win_nums : 당첨 번호
answer = []
ranking = [6, 6, 5, 4, 3, 2, 1] # ranking : 맞춘 개수 별 등수
# 정렬 후 0 개수 찾기 & 정답 개수 찾기
lottos.sort(reverse=False) # 구매한 번호 내림차순 정렬
count_zero = lottos.count(0) # 0 개수
count_win = len(set(lottos) & set(win_nums)) # 정답 개수(교집합 원소의 개수)
# 최고, 최저 등수 반환
answer.append(ranking[count_win+count_zero]) # 최고 등수
answer.append(ranking[count_win]) # 최저 등수
return answer
2) 실행 결과
4. 알게된 점
1) 리스트 오름차순, 내림차순 정렬(sort)
# 리스트의 정렬
list = [1, 3, 2, 5, 4]
list.sort() # [1, 2, 3, 4, 5]
list.sort(reverse=False) # [1, 2, 3, 4, 5]
list.sort(reverse=True) # [5, 4, 3, 2, 1]
2) 두 리스트에서 같은 원소를 찾을 때(set)
# 리스트의 집합화
list1 = [1, 2, 3, 4, 5]
list2 = [1, 3, 5, 7, 9]
set1 = set(list1) # {1, 2, 3, 4, 5}
set2 = set(list2) # {1, 3, 5, 7, 9}
print(set1 & set2) # 교집합 : {1, 3, 5}
print(set1 | set2) # 합집합 : {1, 2, 3, 4, 5, 7, 9}
5. Github 링크
https://github.com/iihye/Algorithm/blob/main/Programmers/lotto_ranking.py
GitHub - iihye/Algorithm
Contribute to iihye/Algorithm development by creating an account on GitHub.
github.com
728x90
'CodingTest > Programmers' 카테고리의 다른 글
[프로그래머스]없는 숫자 더하기(Python) (0) | 2022.07.19 |
---|---|
[프로그래머스]키패드 누르기(Python) (0) | 2022.07.18 |
[프로그래머스]숫자 문자열과 영단어(Python) (0) | 2022.07.12 |
[프로그래머스]신규 아이디 추천(Python) (0) | 2022.07.12 |
[프로그래머스]신고 결과 받기(Python) (0) | 2022.07.06 |
Comments