[Python] νλ‘κ·Έλλ¨Έμ€ μ½λ©ν μ€νΈ μ°μ΅ level3 (μ«μ κ²μ)
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