ν‹°μŠ€ν† λ¦¬ λ·°

728x90
λ°˜μ‘ν˜•

문제

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - 숫자 κ²Œμž„

xx νšŒμ‚¬μ˜ 2xNλͺ…μ˜ 사원듀은 Nλͺ…μ”© 두 νŒ€μœΌλ‘œ λ‚˜λˆ  숫자 κ²Œμž„μ„ ν•˜λ €κ³  ν•©λ‹ˆλ‹€. 두 개의 νŒ€μ„ 각각 AνŒ€κ³Ό BνŒ€μ΄λΌκ³  ν•˜κ² μŠ΅λ‹ˆλ‹€. 숫자 κ²Œμž„μ˜ κ·œμΉ™μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. λ¨Όμ € λͺ¨λ“  사원이 λ¬΄μž‘μœ„λ‘œ

programmers.co.kr

 

문제 풀이

 A, B νŒ€μ΄ μžˆμ„ λ•Œ, μž„μ˜μ˜ μˆ«μžκ°€ 주어진닀. B νŒ€μ΄ μ΅œλŒ€ν•œ 이길 수 μžˆλ„λ‘ ν•˜μ—¬ μ΅œλŒ€ μŠΉμ μ„ λ°˜ν™˜ν•˜λ„λ‘ ν•˜μ—¬μ•Ό ν•œλ‹€. A, Bλ₯Ό μ •λ ¬ν•˜κ³ , μ΅œλŒ€ 값을 λΉ„κ΅ν•˜μ—¬ μ²˜λ¦¬ν•΄μ£Όλ©΄ μ‰½κ²Œ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆλ‹€.

 

 λ§Œμ•½ `AνŒ€μ˜ μ΅œμ†Ÿκ°’`이 `BνŒ€μ˜ μ΅œλŒ€κ°’` 보닀 크닀면 λ³„λ„μ˜ λ°˜λ³΅λ¬Έμ„ 진행할 ν•„μš” 없이 λ°”λ‘œ 0을 λ°˜ν™˜ν•˜λ©΄ λœλ‹€. (이길 수 μ—†λŠ” 경우이기 λ•Œλ¬Έμ΄λ‹€.) μ΄μ™Έμ˜ 경우 `A의 μ΅œλŒ€κ°’`κ³Ό `B의 μ΅œλŒ€κ°’`에 따라 μ²˜λ¦¬ν•˜λ©΄ λœλ‹€.

 

μ½”λ“œ

MIN, MAX = 0, -1

def solution(A, B):
    answer = 0
    A.sort(), B.sort()

    if A[MIN] >= B[MAX]:
        return 0
    
    while A:
        if A[MAX] < B[MAX]:
            answer += 1
            A.pop()
            B.pop()
        else:
            A.pop()
        
    return answer

 

728x90
λ°˜μ‘ν˜•
λŒ“κΈ€
κΈ€ 보관함
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€