알고리즘 풀이/프로그래머스

[Level 3] 숫자 게임

mhko411 2021. 9. 10. 22:08
728x90

https://programmers.co.kr/learn/courses/30/lessons/12987

 

코딩테스트 연습 - 숫자 게임

xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로

programmers.co.kr


접근

A와 B를 모두 오름차순으로 정렬한다. 그리고 A를 탐색하면서 해당 숫자보다 큰 것을 B에서 찾는다.

이때 idx를 사용하여 B를 탐색할 때 사용한다. 만약 A의 첫 번째 숫자보다 큰 것을 찾았다면 B를 처음부터 탐색하는 것이 아니라 큰 것을 찾은 다음 숫자부터 탐색하여 시간을 줄인다.

 

구현

- A와 B를 오름차순으로 정렬한다.

- A의 숫자를 처음부터 탐색한다.

- B에서 idx가 가리키는 숫자가 a보다 크면 idx를 증가시키고 종료한다.

- 아니라면 idx를 계속 증가시킨다.

def solution(A, B):
    answer = 0
    A.sort()
    B.sort()
    N = len(B)
    idx = 0
    for a in A:
        while idx < N:
            if a < B[idx]:
                answer += 1
                idx += 1
                break
            idx += 1
    return answer

'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글

[Level 2] 쿼드압축 후 개수 세기  (0) 2021.09.15
[Level 2] n진수 게임  (0) 2021.09.13
[Level 3] 단어 변환  (0) 2021.09.10
[Level 3] 불량 사용자  (0) 2021.09.10
[Level 3] 이중우선순위큐  (0) 2021.09.09