알고리즘/프로그래머스

[프로그래머스]Summer/Winter Coding(~2018)- 숫자 게임, 파이썬

그레고리력 2021. 3. 31. 22:25

문제


풀이


  • 레벨 3
  • 풀이법은 간단하다.
  • 두 배열 모두 정렬을 한 후 A의 가장 큰 값보다 B의 가장 큰 값이 크면 둘다 배열에서 없애주고 ans에 1을 더해준다.
  • 반대로 A의 가장 큰값보다 B에 큰 값이 없다면 점수를 얻을 수 없으므로 B의 가장 작은 값을 날려준다.(그리디)
  • 끝까지 반복하여 ans 리턴

코드


from collections import deque

def solution(A, B):
    ans = 0
    A.sort(reverse = True)
    B.sort(reverse = True)
    a = deque(A)
    b = deque(B)
    for i in range(len(A)) :
        if a[0] < b[0] :
            ans += 1
            a.popleft()
            b.popleft() 
        else :
            a.popleft()
            b.pop()
    return ans