SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
T = int(input())
for tc in range(1, T + 1):
N = int(input())
arr = sorted(list(map(int, input().split()))) # 오름차순 정렬
min_c = 1000 # 주어진 최대 당근의 개수
for i in range(N - 2): # 소
for j in range(i + 1, N - 1): # 중
if arr[i] != arr[i + 1] and arr[j] != arr[j + 1]: # 다른 크기일 때
S = i + 1 # 소 상자에 있는 당근의 개수
M = j - i # 중 상자에 있는 당근의 개수
L = N - 1 - j # 대 상자에 있는 당근의 개수
if S * M * L != 0 and S <= N // 2 and M <= N // 2 and L <= N // 2: # 빈 박스 X, 절반 초과 박스 X
if min_c > max(S,M,L) - min(S,M,L):
min_c = max(S,M,L) - min(S,M,L)
if min_c == 1000: # 위 조건을 하나라도 만족하지 않아서 최솟값 갱신이 되지 않았을 경우
min_c = -1
print(f'#{tc}', min_c)
1시간 트라이 실패하고 다른 분의 코드...
'swea' 카테고리의 다른 글
2805. 농작물 수확하기 (0) | 2023.08.27 |
---|---|
1926. 간단한 369게임 (0) | 2023.08.27 |
7087. 문제 제목 붙이기 (0) | 2023.08.25 |
4613. 러시아 국기 같은 깃발 (0) | 2023.08.24 |
1289. 원재의 메모리 복구하기 (0) | 2023.08.21 |