반응형
리뷰
또 출력할때 테스트 케이스 앞에 #을 넣어주지 않아 오답이 노출되었다... 후
문제 풀이
- 상자 정보를 리스트로 받아오고 상자 정보에 부호가 -인 상자 정보 리스트를 추가로 생성한다.
- 상자 정보를 최소힙으로 -인 상자 정보를 최대힙으로 만들어준다.
- d가 0이 될때까지 while 루프를 돌아주며 만약 최대값과 최소값이 1이내일 경우 루프를 빠져나온다.
- 테스트 케이스와 최대힙과 최소힙의 차이를 출력해 준다.
참고 사항
힙을 사용하지 않을 경우 시간 초과가 노출되는 것 같다.
정답 코드
def q1208():
# SWEA 1208번 D3 [S/W 문제해결 기본] 1일차 - Flatten 파이썬
import heapq
for i in range(1, 11):
d = int(input())
lst1 = list(map(int, input().split()))
lst2 = [-j for j in lst1]
heapq.heapify(lst1)
heapq.heapify(lst2)
while d:
min_val = heapq.heappop(lst1)
max_val = -heapq.heappop(lst2)
if max_val - min_val <= 1:
print(max_val - min_val)
break
heapq.heappush(lst1, min_val + 1)
heapq.heappush(lst2, -(max_val - 1))
d -= 1
print(f'#{i} {-heapq.heappop(lst2) - heapq.heappop(lst1)}')
q1208()
728x90
반응형
'알고리즘 공부 > 파이썬(Python)' 카테고리의 다른 글
SWEA 2805번 D3 농작물 수확하기 파이썬 (0) | 2024.07.02 |
---|---|
백준 27396번 파이썬 문자열 변환과 쿼리 (1) | 2024.07.01 |
SWEA 1206번 D3 [S/W 문제해결 기본] 1일차 - View 파이썬 (0) | 2024.06.30 |
SWEA 10965번 D3 제곱수 만들기 파이썬 (0) | 2024.06.30 |
백준 3085번 사탕 게임 파이썬 (0) | 2024.06.30 |