일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 알고리즘
- 큐
- sort
- string
- 힙
- graph
- Dynamic Programming
- 프로그래머스
- DVWA
- Queue
- BFS
- 카카오 기출
- 동적계획법
- 완전탐색
- 문자열
- 탐욕법
- django
- heap
- Greedy
- Brute Force
- binary search
- Algorithm
- 코딩테스트
- 그래프
- programmers
- DP
- 백준
- Code Refactoring
- 정렬
- DFS
Archives
- Today
- Total
생각과 고민이 담긴 코드
프로그래머스 - 로또의 최고 순위와 최저 순위 (2021 Dev-Matching 웹백엔드) / Level 1 본문
Algorithm/프로그래머스
프로그래머스 - 로또의 최고 순위와 최저 순위 (2021 Dev-Matching 웹백엔드) / Level 1
0_Hun 2021. 12. 4. 15:38문제 : 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):
answer = []
rank = [6, 5, 4, 3, 2, 1]
match = 0
unknown = 0
for lotto in lottos:
if lotto == 0:
unknown += 1
continue
for win_num in win_nums:
if lotto == win_num:
match += 1
break
if match == 0:
if unknown == 0:
answer.append(6)
else:
answer.append(rank.index(unknown) + 1)
answer.append(6)
else:
answer.append(rank.index(match + unknown) + 1)
answer.append(rank.index(match) + 1)
return answer
level 1의 쉬운 문제였다. 코테에서 첫 번째 문제로 가끔씩 이렇게 쉬운 문제가 나온다.
빠르고 정확하게 풀고 넘어가는 연습을 해야겠다.
매칭 되는 숫자의 수와 0의 개수를 저장하고 그에 따라 순위를 출력해주면 됐다.
순위를 구할땐 if else문을 사용하지 않고 배열의 index를 이용하여 최대한 간단히 구하고자 했다.
그에 따라 0개 맞췄을 때는 따로 처리를 해줘야 했다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 신규 아이디 추천 (2021 KAKAO 블라인드 채용) / Level 1 (0) | 2021.12.12 |
---|---|
프로그래머스 - 숫자 문자열과 영단어 (2021 카카오 채용연계 인턴십) / Level 1 (0) | 2021.12.05 |
프로그래머스 - 기지국 설치 (Summer / Winter Coding ~ 2018) / Level 3 (0) | 2021.11.19 |
프로그래머스 - 스킬트리 (Summer / Winter Coding ~2018) / Level 2 (0) | 2021.11.18 |
프로그래머스 - 뉴스 클러스터링 (2018 KAKAO 블라인드 채용) / Level 2 (0) | 2021.11.12 |