✏️ 문제
문제 파악
최고 순위는 최저 순위 - 0의 개수인 걸 기준으로 코드를 짰다.
최저 순위는 6이고 최고 순위는 1인데 0이 6개일 시 최고 순위가 1이 아닌 0이 되므로 이를 해결하기 위해 6이 아닌 7부터 시작했다.
그리고 최저는 7이 아니라 6이므로 7일 경우 6으로 바꿔주었다.
코드
def solution(lottos, win_nums):
answer = [7, 7]
zero = lottos.count(0)
for l in lottos:
if l in win_nums:
answer[0] -= 1
answer[1] -= 1
if answer[1] != 1:
answer[0] = answer[1] - zero
if answer[0] == 7:
answer[0] = 6
if answer[1] == 7:
answer[1] = 6
return answer
- 다른 분(천재)의 코드
def solution(lottos, win_nums):
rank = [6, 6, 5, 4, 3, 2, 1]
cnt_0 = lottos.count(0)
ans = 0
for x in win_nums:
if x in lottos:
ans += 1
return rank[cnt_0 + ans], rank[ans]
rank 배열의 0과 1에 6을 넣어서 나처럼 굳이 마지막에 if 처리 안해줘도 되게 하셨다..
'PS > 프로그래머스' 카테고리의 다른 글
[Python] 체육복 (0) | 2024.10.31 |
---|---|
[Python] 키패드 누르기 (0) | 2024.10.31 |
[Python] 문자열 나누기 (0) | 2024.10.29 |
[Python] 둘만의 암호 (0) | 2024.10.29 |
[Python] 대충 만든 자판 (0) | 2024.10.29 |