728x90 PriorityQueue2 [python] 백준 1744 수 묶기 https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 문제 해결 1보다 큰 양수는 더하는 것 보다 곱하는 것이 이득 1은 더하는 것이 이득 0은 아무런 영향이 없지만 음수가 있을때 음수를 곱해주면 0을 만들 수 있다. 음수는 음수끼리 곱하면 양수가 된다. 우선순위 큐를 통해 1보다 큰 양수, 음수를 따로 리스트를 분리해서 배열한 후 그 안에서 각각 절대값이 큰 것끼리 곱한다. 양수 리스트에 수가 남으면 더한다. 음수 리스트에 수가 남았고 0인 수가.. 2023. 2. 23. [python] 백준 1715 카드 정렬하기 https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 문제 해결 작은 수의 카드 묶음의 크기를 가진 것 부터 계산을 하는 것이 이득이라는 것을 알 수 있다. 리스트를 쓰고 sort를 쓰면 시간 초과가 난다. 우선순위 큐 (heapq 나 PriorityQueue를 쓰면 좋겠다는 생각으로 풀었다. CODE import sys import heapq n = int(input()) A = [] for _ in range(n): heapq.he.. 2023. 2. 23. 이전 1 다음 728x90