집 짓는 개발블로그
[프로그래머스] LV.3 숫자 게임 (Python) - deque 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12987
소요시간: 13분
1) A와 B를 둘 다 오름차순 정렬한 뒤, B는 통째로 deque에 집어넣는다.
2) 반복문으로 A를 돌면서 그때그때 B의 맨 앞에 있는 값(=최솟값)과 비교한다. a가 더 작으면 score에 1을 더한다.
제출한 코드
from collections import deque
def solution(A, B):
# 매 경기 승점은 +1로 동일 -> 그냥 최대한 많은 경기를 이기면 됨, '이긴 경기' 수가 최대 승점 = 리턴
# 일대일 매칭
if min(A) > max(B):
return 0
elif max(A) < min(B):
return len(A)
score = 0
A.sort()
q = deque(sorted(B))
for a in A:
while q:
if a < q[0]:
q.popleft()
score += 1
break
q.popleft()
return score
'MySQL' 카테고리의 다른 글
[프로그래머스] 노선과 평균 역 사이 거리 조회하기 (MySQL) (0) | 2024.06.24 |
---|---|
[프로그래머스] 업그레이드 된 아이템 구하기 (MySQL) - INNER JOIN으로 NULL 바로 제거하기, EXISTS (0) | 2024.06.23 |
[프로그래머스] 조건에 맞는 개발자 찾기 (MySQL) - EXISTS, 서브쿼리 (0) | 2024.06.22 |
[프로그래머스] 업그레이드 할 수 없는 아이템 구하기 (MySQL) - IN, EXISTS, NULL, Three-valued logic (0) | 2024.06.21 |
[프로그래머스] 헤비 유저가 소유한 장소 (MySQL) (0) | 2024.06.21 |