코딩테스트/프로그래머스

[프로그래머스][그리디] 숫자 게임

박소민 2024. 12. 6. 15:18
숫자 게임
 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

  • 내 풀이
    • 그리디로 푼 이유 : 승리 시 무조건 고정 1점이기 때문 
    • A와 B를 정렬해서 최솟값들끼리 비교
      • → 근데 그 과정을 python 이진탐색 라이브러리 bisect 이용
      • → B가 삽입될 위치가 1 이상이면 A의 최솟값이 더 작다고 판단
    • for문으로 B 값들을 돌면서 진행하면
      • 1) B 값이 A의 최솟값보다 큰 경우:  갯수 세고 A pop, 비교끝낸 B도 넘어감
      • 2) B 값이 A의 최솟값보다 작은 경우: 다음 B값과 비교
from bisect import bisect_left
def solution(A, B):
    A.sort()
    B.sort()
    cnt=0
    for idx in range(len(B)):
        bi=bisect_left(A,B[idx])
        if bi>0:
            A.pop(0)
            cnt+=1
            
    return cnt