https://programmers.co.kr/learn/courses/30/lessons/77484
간단하게 생각해서 0으로 나와있는 번호는 두가지로 다맞추거나 다 틀리거나로 나누어
등수를 매기면 되겠다 생각해서 맞추는 번호를 딕셔너리로 만들어 맞추어 등수를 표기해 주었다.
def solution(lottos, win_nums):
answer = []
cnt = 0
winning_Rank={
6: 1,
5: 2,
4: 3,
3: 4,
2: 5,
1: 6,
0: 6
}
answer = []
for lotto in lottos:
if lotto != 0:
if lotto in win_nums:
cnt += 1
if lottos.count(0) != 0:
answer.append(winning_Rank[cnt+lottos.count(0)])
answer.append(winning_Rank[cnt])
elif lottos.count(0) == 6:
answer = [1,6]
else :
answer.append(winning_Rank[cnt])
answer.append(winning_Rank[cnt])
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]
- 문제를 쉽게 풀려고 하다가 더 늦게 될 수 있으니 그래도 길더라도 풀어보자
[coding_test]더 맵게 (0) | 2021.05.24 |
---|---|
[coding_test]음양 더하기 (0) | 2021.05.20 |
리눅스 마스터 2급 문제(21~30) (0) | 2021.05.13 |
[coding_test]오픈채팅방 (0) | 2021.05.13 |
[coding_test]멀쩡한 사각형 (0) | 2021.05.12 |