문제 설명 및 제한사항
아이디어 및 해결 방법
코드
import bisect
def solution(A, B):
# 이분탐색 + 그리디로 풀어봅니다.
# A[i] 각각에 대해서, 정렬된 B의 [bisect_right 위치 + 1] 값을 pop
answer = 0
B.sort()
for i in range(len(A)):
idx = bisect.bisect_right(B, A[i])
if idx < len(B):
# 가능한 가장 작은 수를 써서 이기는 방법으로
# 그리디하게 해결합니다.
answer += 1
B.pop(idx)
else:
# 아무리 큰 숫자를 써도 못 이기면
# 가장 작은 숫자를 털어버립니다.
B.pop(0)
return answer
Python
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges