2831 - 댄스 파티

LeeKyoungChang·2022년 6월 5일
0

Algorithm

목록 보기
143/203
post-thumbnail

📚 2831 - 댄스 파티

댄스 파티

 

이해

여러번 채점 결과 맞추지를 못해 블로그를 참고했다.

(1) 남자와 여자 각각 양수와 음수일 때를 각 리스트에 넣어준다.
(2) 양수일 경우 오름차순, 음수일 경우 내림차순으로 정렬
(3) 함수를 통해 쌍을 구할 것이다. 정렬된 2개의 리스트에서 순차적으로 탐색을 하고, 합이 음수일 경우 answer += 1을 한다.

비교 대상은

  • 남자 양수와 여자 음수
  • 여자 양수와 남자 음수

 

소스

import sys  
  
read = sys.stdin.readline  
  
n = int(read())  
  
arr = list(map(int, read().split()))  
arr2 = list(map(int, read().split()))  
  
  
nman = []  
pman = []  
  
nwoman = []  
pwoman = []  
  
for in_arr in arr:  
    if in_arr < 0:  
        nman.append(in_arr)  
    else:  
        pman.append(in_arr)  
  
for in_arr in arr2:  
    if in_arr < 0:  
        nwoman.append(in_arr)  
    else:  
        pwoman.append(in_arr)  
  
answer = 0  
  
nman.sort(reverse=True)  
pman.sort()  
nwoman.sort(reverse=True)  
pwoman.sort()  
  
def calForResult(plus, minus):  
    j = 0  
    cnt = 0  
    for i in range(len(plus)):  
        while j < len(minus):  
            if plus[i] + minus[j] < 0:  
                j += 1  
                cnt += 1  
                break  
            else:  
                j += 1  
        if j == len(minus):  
            break  
  
    return cnt  
  
  
answer += calForResult(pman, nwoman)  
answer += calForResult(pwoman, nman)  
  
print(answer)

 


참고 : https://landlordgang.tistory.com/105?category=458943

 

profile
"야, (오류 만났어?) 너두 (해결) 할 수 있어"

0개의 댓글