https://programmers.co.kr/learn/courses/30/lessons/12987#
ํ์ด
์์ ์ ํ์ด๋ดค๋ ๋ฌธ์ ๋ค.
ํต์ฌ์ ๋น๊ต๊ฐ๋ณด๋ค ํฐ ๊ฐ์ด ์๋ค๋ฉด, ํฐ ๊ฐ ์ค ๊ฐ์ฅ ์์ ๊ฐ์ ๋ด๊ณ
๋น๊ต๊ฐ๋ณด๋ค ํฐ ๊ฐ์ด ์๋ค๋ฉด ๊ฐ์ฅ ์์ ๊ฐ์ ๋ด๋ ๊ฒ์ด๋ค.
์ ๋ ฌ๊ณผ ์ด์ง ํ์์ ์ด์ฉํด์ ํ์๋ค.
ํ ๋ฒ์ ์ง์ ๊ตฌํํ๊ณ , ํ ๋ฒ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ ํ๋ค.
์ง์ ๊ตฌํ
def solution(A, B):
answer = 0
B.sort()
def b_search(val):
start = 0
end = len(B)-1
while start < end:
mid = (start + end) // 2
if B[mid] > val:
end = mid
else:
start = mid + 1
return end
for a in A:
idx = b_search(a)
if B[idx] > a:
B.pop(idx)
answer += 1
else:
B.pop(0)
return answer
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ
import bisect
def solution(A, B):
answer = 0
B.sort()
for a in A:
idx = bisect.bisect_right(B, a)
if idx == len(B):
B.pop(0)
else:
B.pop(idx)
answer += 1
return answer
๋ ๋์ ํ์ด๋ก๋?
์กฐ๊ธ ๋ ์๊ฐํด๋ณด๋ฉด, ์ด์ง ํ์์ ํ์ง ์์๋ ๋๋ ๋ฌธ์ ์ด๋ค.
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
'Problem Solving ๐ฅ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํ ์์ด / ํ์ด์ฌ (0) | 2021.02.12 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ํ ๋ฒ์ค / ํ์ด์ฌ / (์๋ฎฌ๋ ์ด์ ) (0) | 2021.01.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฐฐ๋ฌ / ํ์ด์ฌ / (๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ) (0) | 2021.01.29 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ธฐ์ง๊ตญ ์ค์น / ํ์ด์ฌ (0) | 2021.01.29 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ณด์ ์ผํ / ํ์ด์ฌ / ํฌ ํฌ์ธํฐ (0) | 2021.01.27 |