https://www.acmicpc.net/problem/9017
์ฐธ๊ฐ์ ์๊ฐ 6๋ช
๋ณด๋ค ์์ ํ์ ๋ฐ๋์ ์ ์ ๊ณ์ฐ์์ ์ ์ธํด์ค์ผ ์ ๋๋ก ๋ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค
์ด ์กฐ๊ฑด ๋ฌด์ํด์ ์ฒ์์ ํ
์ผ๋ถํฐ ํ๋ ธ์
t = int(input())
for _ in range(t):
n = int(input())
count = {} # ํ ๋น ์ฃผ์ ์
temp = list(map(int, input().split()))
# ํ ๋ณ๋ก ์ฃผ์ ์ ์ธ๊ธฐ
for i in range(n):
if temp[i] in count:
count[temp[i]] += 1
else:
count[temp[i]] = 1
# ์ ์ธ๋๋ ํ ๊ตฌํ๊ธฐ
dele = {} # ์ ์ธ๋๋ ํ
for k, v in count.items():
if v < 6:
dele[k] = 1
# ์ ์ ๊ณ์ฐ
team = {}
idx = 1 # ์ ์
for i in range(n):
if temp[i] not in dele:
if temp[i] in team:
if team[temp[i]][0] < 4:
team[temp[i]][0] += 1
team[temp[i]][1] += idx
elif team[temp[i]][0] == 4:
team[temp[i]][0] += 1
team[temp[i]][2] = idx
else:
team[temp[i]] = [1, idx, 0] # [ํ๋น ์ฃผ์ ์, ์์ 4๋ช
์ ์ ํฉ, 5๋ฒ์งธ ์ฃผ์์ ์ ์]
idx += 1
# ์์ ์ ๋ ฌ
team = sorted(team.items(), key=lambda x:(x[1][1], x[1][2]))
๋ฉ๋ชจ๋ฆฌ ์ ํ์ด ์์์ ๊ฑฑ์ ํ์ง๋ง ๋ฒ์๊ฐ ์์์ ๊ทธ๋ฐ์ง ๋ฌด๋ฆฌ์์ด ํต๊ณผํ ์ ์์๋ค
๊ทผ๋ฐ ์ค๋ฒ4 ์์ค์ ์๋ ๊ฒ ๊ฐ์๋