Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 데이터 분석
- Brightics Studio
- 혼공학습단
- 영상제작기
- Brigthics
- 팀 분석
- 추천시스템
- 직원 이직여부
- 개인 의료비 예측
- Brigthics를 이용한 분석
- 삼성SDS Brigthics
- 데이터분석
- 삼성 SDS Brigthics
- 혼공
- 삼성SDS
- 모델링
- Brightics를 이용한 분석
- 노코드AI
- 브라이틱스
- 삼성SDS Brightics
- 포스코 아카데미
- 캐글
- Brigthics Studio
- 혼공머신러닝딥러닝
- 직원 이직률
- 포스코 청년
- Brightics
- 혼공머신
- 브라이틱스 서포터즈
- 삼성 SDS
Archives
- Today
- Total
데이터사이언스 기록기📚
[백준/Python] 13975번(그리디, 우선순위 큐)_ 파일 합치기3 본문
📌문제 유형
그리디, 우선순위 큐 (골드 Lv.4)
📌문제
13975번: 파일 합치기 3
프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T개의 테스트 데이터로 이루어져 있는데, T는 입력의 맨 첫 줄에 주어진다.각 테스트 데이터는 두 개의 행으로 주어지는데,
www.acmicpc.net
📌나의 문제풀이
- 우선순위 큐 적용한 것(정답)
import heapq
t = int(input())
for _ in range(t):
ans = 0
k = int(input())
chap_nums = list(map(int,input().split()))
heapq.heapify(chap_nums)
while True:
num1 = heapq.heappop(chap_nums)
num2 = heapq.heappop(chap_nums)
ans += (num1 + num2)
heapq.heappush(chap_nums, num1 + num2)
if len(chap_nums) == 1:
break
print(ans)
- 우선순위 큐 적용X (오답)
t = int(input())
for _ in range(t):
ans = 0
k = int(input())
chap_nums = list(map(int,input().split()))
while True:
chap_nums.sort()
num1 = chap_nums.pop(0)
num2 = chap_nums.pop(0)
ans += (num1 + num2)
chap_nums.append(num1 + num2)
if len(chap_nums) == 1:
break
print(ans)
📌 다른사람의 문제풀이
- 동일[Python] 백준 13975 파일 합치기 3
1. 문제 링크 https://www.acmicpc.net/problem/13975 13975번: 파일 합치기 3 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T개의 테스트 데이터로 이루어져 있는데, T는 입력의 맨 첫
ryu-e.tistory.com
import sys
import heapq
for _ in range(int(sys.stdin.readline())):
k = int(sys.stdin.readline())
arr = list(map(int, sys.stdin.readline().split()))
heapq.heapify(arr) # 최소힙
result = 0
# 가장 작은 2개의 파일 크기를 꺼내서 합친값을 다시 우선순위 큐에 넣기
while len(arr) >= 2:
f = heapq.heappop(arr)
s = heapq.heappop(arr)
result += (f + s)
heapq.heappush(arr, (f + s))
print(result)
📌 리뷰
-입력 개수 꼭 확인하기! (장의 수 k가 1,000,000까지여서 시간 많이 소요되는걸 파악할 수 있음)
- 매번 정렬 + 작은 숫자가 나와야함 + 입력개수 큼 -> 우선순위 큐 적용하기
- 우선순위 큐 정리 내용
[Python] Heap과 heapq 모듈
heap 에 대한 설명은 https://brownbears.tistory.com/391에서 했지만 여기서는 더 자세하게 설명을 합니다. Heap은 최댓값, 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안되었으며 완전 이진 트리 (Complete
brownbears.tistory.com
728x90
'Coding Test > 백준(Python)' 카테고리의 다른 글
[백준/Python] 3584번(DFS, 그래프 이론)_가장 가까운 공통 조상 (0) | 2023.08.17 |
---|---|
[백준/Python] 14502번(완탐, DFS)_연구소 (0) | 2023.08.15 |
[백준/Python] 1339번(그리디)_단어 수학 (0) | 2023.08.08 |
[백준/Python] 2573번(DFS,BFS)_빙산 (0) | 2023.08.07 |
[백준/Python] 1744번(그리디, 정렬)_수 묶기 (0) | 2023.06.09 |
Comments