문제 링크 (Level 1)
https://programmers.co.kr/learn/courses/30/lessons/77484?language=python3#
나의 코드 (Python)
def solution(lottos, win_nums):
chk = 0 # 맞은 갯수
cnt_0 = lottos.count(0) # 로또에 0 값은 몇개?
for i in lottos:
if i in win_nums:
chk += 1 # 맞다면 카운팅
# 최고순위
# 맞춘개수 : 0, 0_카운팅 : 0 인 경우 -> 6등
# 나머지 경우 -> 7 - 맞춘갯수 - 0_카운팅
# 최저순위
# 맞춘개수 : 0 인 경우 -> 6등
# 나머지 경우 -> 7 - chk
answer = [6 if chk == 0 and cnt_0 == 0 else 7-chk-cnt_0 , 6 if chk == 0 else 7-chk]
return answer
1. 로또를 맞춘 개수를 카운팅
2. 로또에서 0의 개수를 카운팅
3. 최고 순위와 최소 순위를 구함
위와 같은 풀이 방식에 경우 조건문을 이용하여 풀었지만 제출 이후 다른 사람들의 풀이를 본 결과
rank = [6, 6, 5, 4, 3, 2, 1]과 같은 순위에 관한 배열을 만들고 인덱스를 활용하여 푸는 방법이 더 좋다고 느껴진다.
'코딩공부 > 프로그래머스 (python)' 카테고리의 다른 글
[프로그래머스] 실패율 (Python) (0) | 2022.03.27 |
---|---|
[프로그래머스] 체육복 (Python) (0) | 2022.03.27 |
[프로그래머스] 없는 숫자 더하기 (Python) (0) | 2022.03.22 |
[프로그래머스] 신고 결과 받기 (Python) (0) | 2022.03.21 |
[프로그래머스] 문자열 압축 (python) (0) | 2021.08.02 |
댓글