πŸ€– μ•Œκ³ λ¦¬μ¦˜

programmers. 둜또의 졜고 μˆœμœ„μ™€ μ΅œμ € μˆœμœ„

ttoance 2022. 6. 23. 22:53

문제 링크 

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - 둜또의 졜고 μˆœμœ„μ™€ μ΅œμ € μˆœμœ„

둜또 6/45(μ΄ν•˜ '둜또'둜 ν‘œκΈ°)λŠ” 1λΆ€ν„° 45κΉŒμ§€μ˜ 숫자 쀑 6개λ₯Ό μ°μ–΄μ„œ λ§žνžˆλŠ” λŒ€ν‘œμ μΈ λ³΅κΆŒμž…λ‹ˆλ‹€. μ•„λž˜λŠ” 둜또의 μˆœμœ„λ₯Ό μ •ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. 1 μˆœμœ„ 당첨 λ‚΄μš© 1 6개 λ²ˆν˜Έκ°€ λͺ¨λ‘ 일치 2 5개 번호

programmers.co.kr

 

λ‚΄κ°€ μ“΄ 풀이 

# 둜또 번호 당첨 μ²΄ν¬ν•˜λŠ” ν•¨μˆ˜ 
def isWin(win_nums, lotto):
    for num in win_nums:
        if (num == lotto):
            return True
    return False

# 랭크 κ³„μ‚°ν•΄μ£ΌλŠ” ν•¨μˆ˜
def getRankByWin(win):
    if (win < 2): # 0,1κ°œλŠ” λͺ¨λ‘ 6μœ„ (tc 포함해야 ν•˜λŠ” μΌ€μ΄μŠ€)
        return 6;
    else:
        return 7 - win; # 랭크 + μˆœμœ„ = 7μ΄λ―€λ‘œ     

def solution(lottos, win_nums):
    hidden = 0 # μ•Œμ•„λ³Ό 수 μ—†λŠ” 번호
    win = 0 # 맞좘 번호 갯수
    
    for lotto in lottos:
        # μ•Œμ•„λ³Ό 수 μ—†λŠ” 번호인 경우 
        if lotto == 0:
            hidden += 1
        else:
            if (isWin(win_nums, lotto)) :
                win += 1
    
    # print(win, hidden)
    min = getRankByWin(win) # 당첨 갯수둜 λž­ν‚Ή 쑰회
    max = getRankByWin(win + hidden) # 당첨 갯수둜 λž­ν‚Ή 쑰회

            
    return [max, min]

 

λ‹€λ₯Έ μ‚¬λžŒ 풀이 

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]
 

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

μ½”λ“œ μ€‘μ‹¬μ˜ 개발자 μ±„μš©. μŠ€νƒ 기반의 ν¬μ§€μ…˜ 맀칭. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ 개발자 λ§žμΆ€ν˜• ν”„λ‘œν•„μ„ λ“±λ‘ν•˜κ³ , λ‚˜μ™€ 기술 ꢁ합이 잘 λ§žλŠ” 기업듀을 맀칭 λ°›μœΌμ„Έμš”.

programmers.co.kr

 

λ°˜μ‘ν˜•