250x250
Link
λ‚˜μ˜ GitHub Contribution κ·Έλž˜ν”„
Loading data ...
Notice
Recent Posts
Recent Comments
관리 메뉴

Data Science LAB

[Python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ level3 (숫자 κ²Œμž„) λ³Έλ¬Έ

πŸ“ Coding Test/Programmers

[Python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ level3 (숫자 κ²Œμž„)

γ…… γ…œ γ…” γ…‡ 2023. 1. 24. 17:18
728x90

1. 문제 μ„€λͺ…

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

  • λ¨Όμ € λͺ¨λ“  사원이 λ¬΄μž‘μœ„λ‘œ μžμ—°μˆ˜λ₯Ό ν•˜λ‚˜μ”© λΆ€μ—¬λ°›μŠ΅λ‹ˆλ‹€.
  • 각 사원은 λ”± ν•œ λ²ˆμ”© κ²½κΈ°λ₯Ό ν•©λ‹ˆλ‹€.
  • 각 κ²½κΈ°λ‹Ή AνŒ€μ—μ„œ ν•œ 사원이, BνŒ€μ—μ„œ ν•œ 사원이 λ‚˜μ™€ μ„œλ‘œμ˜ 수λ₯Ό κ³΅κ°œν•©λ‹ˆλ‹€. κ·Έλ•Œ μˆ«μžκ°€ 큰 μͺ½μ΄ μŠΉλ¦¬ν•˜κ²Œ 되고, μŠΉλ¦¬ν•œ 사원이 μ†ν•œ νŒ€μ€ μŠΉμ μ„ 1점 μ–»κ²Œ λ©λ‹ˆλ‹€.
  • λ§Œμ•½ μˆ«μžκ°€ κ°™λ‹€λ©΄ λˆ„κ΅¬λ„ μŠΉμ μ„ 얻지 μ•ŠμŠ΅λ‹ˆλ‹€.

전체 사원듀은 μš°μ„  λ¬΄μž‘μœ„λ‘œ μžμ—°μˆ˜λ₯Ό ν•˜λ‚˜μ”© λΆ€μ—¬λ°›μ•˜μŠ΅λ‹ˆλ‹€. κ·Έλ‹€μŒ AνŒ€μ€ λΉ λ₯΄κ²Œ μΆœμ „μˆœμ„œλ₯Ό μ •ν–ˆκ³  μžμ‹ λ“€μ˜ μΆœμ „ μˆœμ„œλ₯Ό BνŒ€μ—κ²Œ κ³΅κ°œν•΄λ²„λ ΈμŠ΅λ‹ˆλ‹€. BνŒ€μ€ 그것을 보고 μžμ‹ λ“€μ˜ μ΅œμ’… μŠΉμ μ„ κ°€μž₯ λ†’μ΄λŠ” λ°©λ²•μœΌλ‘œ νŒ€μ›λ“€μ˜ μΆœμ „ μˆœμ„œλ₯Ό μ •ν–ˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œμ˜ BνŒ€μ΄ μ–»λŠ” μŠΉμ μ„ κ΅¬ν•΄μ£Όμ„Έμš”.
A νŒ€μ›λ“€μ΄ 뢀여받은 μˆ˜κ°€ μΆœμ „ μˆœμ„œλŒ€λ‘œ λ‚˜μ—΄λ˜μ–΄μžˆλŠ” λ°°μ—΄ A와 i번째 μ›μ†Œκ°€ BνŒ€μ˜ i번 νŒ€μ›μ΄ 뢀여받은 수λ₯Ό μ˜λ―Έν•˜λŠ” λ°°μ—΄ Bκ°€ μ£Όμ–΄μ§ˆ λ•Œ, B νŒ€μ›λ“€μ΄ 얻을 수 μžˆλŠ” μ΅œλŒ€ μŠΉμ μ„ return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

 
 

 

 

 

 

 

 

2. μ œν•œμ‚¬ν•­

  • A와 B의 κΈΈμ΄λŠ” κ°™μŠ΅λ‹ˆλ‹€.
  • A와 B의 κΈΈμ΄λŠ” 1 μ΄μƒ 100,000 μ΄ν•˜μž…λ‹ˆλ‹€.
  • A와 B의 각 μ›μ†ŒλŠ” 1 μ΄μƒ 1,000,000,000 μ΄ν•˜μ˜ μžμ—°μˆ˜μž…λ‹ˆλ‹€.

 

 

 

 

 

 

3. λ‚΄ 풀이 

def solution(A, B):
    answer = 0
    A.sort(reverse=True)
    B.sort(reverse=True)
    
    while A:
        a = A.pop()
        for _ in B:
            b = B.pop()
            if b > a:
                answer += 1
                break
    return answer

 

1. A, Bλ₯Ό 각각 λ‚΄λ¦Ό 차순으둜 μ •λ ¬ (pop()의 μ‹œκ°„ λ³΅μž‘λ„κ°€ pop(0)보닀 λΉ λ₯΄κΈ° λ•Œλ¬Έ)

2. A λ¦¬μŠ€νŠΈμ—μ„œ μ›μ†Œλ“€μ„ ν•˜λ‚˜μ”© κΊΌλ‚΄μ„œ B리슀트의 μ›μ†Œκ°€ a보닀 크면 answer +1

 

 

 

 

 

4. λ‹€λ₯Έ μ‚¬λžŒμ˜ 풀이 

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

    for i in range(len(A)):
        if A[j] < B[i]:
            answer = answer + 1
            j = j+1

    return answer

 

 

 

def solution(A, B):
    answer = 0
    sortA = sorted(A)
    sortB = sorted(B)
    for i in sortA:
        for j in sortB:
            if i<j:
                answer+=1
                sortB.remove(j)
                break


    return answer
728x90
Comments