programmers.co.kr/learn/courses/30/lessons/12987
์ฒ์์๋ ๊ทธ๋ฅ sortํด์ ํ๋ฉด ๋๋๊ฑฐ ์๋๊ฐ? ํ๋ค๊ฐ ํจ์จ์ฑ์์ ๊ฑธ๋ฆฌ๊ฒ ์ง? ํ๊ณ ๊ฑ ๋ด๋ดค๋๋ฐ ๋ต๋ ํ๋ ธ๋ค๊ณ ํด์ ? ์ถ์๋คใ ใ ๊ณ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ค๊ณ ํ๊ฒ ์ฝ์ง์ ์์ธ์ธ๋ฏ๐ค
ํธ๋ ๋ฐฉ๋ฒ์ ๊ฒ์ํด๋ดค๋๋!
1. min(A) >= max(B) ์ด๋ฉด ํ๋๋ ์ด๊ธด๊ฒ ์๋ค๋ ๋ง์ด๋๊น.. ๋ฐ๋ก 0 ๋ฆฌํด
2. A์ B๋ฅผ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ.
A[0]์ B[0]๋ฅผ ๋น๊ตํ์ฌ ์ง๊ฑฐ๋ ๋น๊ธฐ๋ฉด continue -> A[1]๊ณผ B[0]์ ๋น๊ต... ๋ฐ๋ณต
์ด๊ธฐ๋ฉด answer += 1 ํ๊ณ B์์ pop
์ด๋ ๊ฒ ๊ฐ๋จํ ์๊ฐใ ใ ๋ค๋ค ์ฒ์ฌ๊ฐ๋ค..
์ ๊ทผ๋ฐ ์ฌ๊ธฐ์ ์ค์ํ๊ฒ B๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋, ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๋น ๋ฅด๊ฒ ์ ๊ฑฐํ๊ธฐ ์ํด heapq๋ฅผ ์ฌ์ฉํ๊ณ
์ต๋ํ์ ์ฐ๊ธฐ์ํด ๋ถํธ๋ฅผ ๋ฐ๊พธ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค! ๊ทธ๋์ A์ B๋ฅผ ๋น๊ตํ ๋์๋ ์ ๋๊ฐ์ ์ทจํ๊ฑฐ๋ -1์ ๊ณฑํด์ค์ผ ํ๋ค.
๐โ๏ธ ์์ฑํ ์ฝ๋
๋๋ณด๊ธฐ
import heapq
def solution(A, B):
answer = 0
if min(A) >= max(B):
return 0
A.sort(reverse = True) #A๋ฅผ ๋ด๋ฆผ ์ ๋ ฌ
B = [-b for b in B]
# print(B)
heapq.heapify(B)
for i in range(len(A)):
if A[i] >= B[0]*-1 : #์ง๊ฑฐ๋ ๋น๊ธฐ๋ฉด
continue
else:
heapq.heappop(B)
answer += 1
return answer
'๐๊ณต๋ถ > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] 2๊ฐ ์ดํ๋ก ๋ค๋ฅธ ๋นํธ (0) | 2021.05.18 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค Lv.3] ๊ธฐ์ง๊ตญ ์ค์น (0) | 2021.04.28 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.3] ํ์ ํฐํธ๋ฆฌ๊ธฐ (0) | 2021.04.20 |
[๋ฐฑ์ค] 14889๋ฒ ์คํํธ์ ๋งํฌ (0) | 2021.01.07 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ์ผ๊ฐ ๋ฌํฝ์ด (0) | 2021.01.05 |
๋๊ธ