
주소: https://programmers.co.kr/learn/courses/30/lessons/77484
[ 문제 ]

[ 나의 귀여운 풀이 ]
def solution(lottos, win_nums):
answer = []
zero_num = lottos.count(0)
cnt = 0
for i in range(len(lottos)):
if lottos[i] in win_nums:
cnt += 1
if cnt >= 2:
min = 7 - cnt
if cnt < 2:
min = 6
max = min - zero_num
if max <= 0:
max = 1
answer.append(max)
answer.append(min)
return answer
[ 다른 분들의 유려한 코드 ]
def solution(lottos, win_nums):
answer = []
rank = [6, 6, 5, 4, 3, 2, 1]
zero_num = lottos.count(0)
cnt = 0
for i in range(len(lottos)):
if lottos[i] in win_nums:
cnt += 1
min = rank[cnt]
max = rank[cnt + zero_num]
answer.append(max)
answer.append(min)
return answer
[ 배운 것 ]
1. rank 배열 사용: 조건문을 사용하는 대신 배열을 사용했다면 코드도 훨씬 간결하고, 연산을 몇 번이라도 줄일 수 있을 것 같다.
꾸준히 열심히!
'Otter's [ 개발새발 ] > # 코딩테스트 - Programmers' 카테고리의 다른 글
| [Programmers 코딩테스트 연습_Lv1_Python] 내적 (0) | 2022.06.03 |
|---|---|
| [Programmers 코딩테스트 연습_Lv1_Python] [카카오 인턴] 키패드 누르기 (0) | 2022.06.03 |
| [Programmers 코딩테스트 연습_Lv1_Python] 숫자 문자열과 영단어 (0) | 2022.06.03 |
| [Programmers 코딩테스트 연습_Lv1_Python] 신규 아이디 추천 (0) | 2022.05.31 |
| [Programmers 코딩테스트 연습_Lv1_Python] 신고 결과 받기 (0) | 2022.05.30 |