λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μ•Œκ³ λ¦¬μ¦˜ 문제 풀이

[λ°±μ€€]1205번: λ“±μˆ˜ κ΅¬ν•˜κΈ°

by syLim___ 2023. 3. 15.
728x90

https://www.acmicpc.net/problem/9017

 

9017번: 크둜슀 컨트리

μž…λ ₯ λ°μ΄ν„°λŠ” ν‘œμ€€μž…λ ₯을 μ‚¬μš©ν•œλ‹€. μž…λ ₯은 T 개의 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ‘œ μ£Όμ–΄μ§„λ‹€. μž…λ ₯ 파일의 첫 번째 쀄에 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ˜ 수λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜ T κ°€ μ£Όμ–΄μ§„λ‹€. 두 번째 μ€„λΆ€ν„°λŠ” 두 쀄에 ν•˜λ‚˜μ˜

www.acmicpc.net


λ§žμ™œν‹€ λ§žμ™œν‹€ λ§žμ™œν‹€ λ§žμ™œν‹€ μ™ΈμΉ˜λ‹€κ°€

밀크티 ν•œ μž” λ§ˆμ‹œκ³  μ™€μ„œ μ½”λ“œλ₯Ό μƒˆλ‘œ μ§°λ‹€..

 

μ‹€κ²©νŒ€μ„ λ°°μ—΄μ—μ„œ μ œμ™Έν•˜κ³  μ•ˆ ν•˜κ³  차이밖에 μ—†λŠ”λ°

λ‹€μ‹œ μƒκ°ν•΄λ³΄λ‹ˆ μ•„λ§ˆ 점수 계산 λ‘œμ§μ—μ„œ λ¬Έμ œκ°€ μžˆμ—ˆλ˜ 것 κ°™λ‹€

μ½”λ“œκ°€ 전에 λΉ„ν•΄ 많이 λ”λŸ¬μ›Œμ§€κΈ΄ ν–ˆμ§€λ§Œ μ •λ‹΅ νŒμ •μ„ 받을 수 μžˆμ—ˆλ”° γ… γ… γ… 

 

크게 μ–΄λ €μš΄ λ¬Έμ œλŠ” μ•„λ‹ˆμ—ˆμŒ. κ·Έλž˜λ„ ν’€λ‹€κ°€ ν•œ 번 λ§‰ν˜”μ„ λ•Œ

문제λ₯Ό ν‘Ό 인원이 μ λ‹€λ³΄λ‹ˆκΉŒ μ§ˆλ¬Έκ²Œμ‹œνŒμ—μ„œ λ°˜λ‘€λ₯Ό 찾을 μˆ˜λ„ μ—†κ³ , μ •λ‹΅ μ½”λ“œλ„ λ”°λ‘œ 확인할 수 μ—†μ–΄μ„œ 쑰금 μŠ¬νŽλ‹€

 


 

1. 6λͺ…μ˜ νŒ€μ›μ΄ λͺ¨λ‘ μ™„μ£Όν•˜μ§€ λͺ»ν•œ νŒ€μ˜ 기둝은 μ‚­μ œν•œλ‹€

2. 4λ²ˆμ£ΌμžκΉŒμ§€μ˜ μ μˆ˜ν•©μ„ κ΅¬ν•˜κ³ , 5번주자의 점수λ₯Ό λ”°λ‘œ 기둝해둔닀

3. μ μˆ˜ν•© μ˜€λ¦„μ°¨μˆœ, 5번주자 점수 μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬ν•œλ‹€

4. 1λ“±νŒ€μ„ 좜λ ₯ν•œλ‹€

 


import sys
input=sys.stdin.readline

t=int(input())
for _ in range(t):
  n = int(input())
  arr = list(map(int,input().split()))

  #6λͺ… λͺ¨λ‘ μ™„μ£Όν•œ νŒ€ κ΅¬ν•˜κΈ°
  temp=[0]*201
  qualified=[]
  for i in range(n):
    temp[arr[i]] += 1
    if temp[arr[i]]==6:
      qualified.append(arr[i])

  #μ‹€κ²©νŒ€μ œμ™Έ, λ°°μ—΄λ§Œλ“€κΈ°
  mainArr=[]
  for i in range(n):
    if arr[i] in qualified:
      mainArr.append(arr[i])

  #μ΅œμ’… 점수 λ§€κΈ°κΈ°
  final_score = []
  for i in range(len(qualified)):
    tempList=[qualified[i],0,0,0] #νŒ€λ²ˆν˜Έ,점수,λ“€μ–΄μ˜¨μ‚¬λžŒμˆ˜,5번주자점수
    final_score.append(tempList)
  
  for i in range(len(mainArr)):
    for j in range(len(final_score)):
      if final_score[j][0]==mainArr[i]:
        if final_score[j][2]<4:
          final_score[j][2]+=1
          final_score[j][1]+=(i+1)
        elif final_score[j][2]==4:
          if final_score[j][3]==0:
            final_score[j][3] += (i+1)
        

  final_score.sort(key=lambda x:(x[1],x[3]))

  print(final_score[0][0])
728x90