알고리즘

[백준, 파이썬, 1270번] 전쟁 - 땅따먹기

hminor 2024. 2. 12. 12:47

풀이

  • 테스트 케이스 이후의 주어지는 입력값 중
  • 첫 번째 값은 땅에 있는 병사수
  • 이후의 값은 병사의 번호로 주어지며
  • 해당 병사의 번호를 딕셔너리 기반으로 인원을 조사할 수 있도록 했으며
  • 결과로는 땅에 있는 인원의 절반을 mx가 초과하지 못한다는 것을 기준으로 출력하여 해결

 

import sys
input = sys.stdin.readline

for _ in range(int(input())):
    dic = dict()
    mx = 0
    li = list(map(int,input().split()))

    for i in range(1,li[0]+1):
        if dic.get(li[i]):
            dic[li[i]] += 1
        else: dic[li[i]] = 1
        mx = max(dic[li[i]],mx)
   
    result = 0
    if mx > li[0]//2:
        for i in dic.keys():
            if dic[i] == mx:
                result = i
                break
    else: result = "SYJKGW"
    print(result)