알고리즘/프로그래머스
[프로그래머스]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