티스토리 뷰

- 문제 링크

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

 

1270번: 전쟁 - 땅따먹기

첫째 줄에는 땅의 개수 n(n<=200)이 주어진다. 그리고 두 번째 줄에서 n+1번째 줄에는 제일 처음에 숫자 Ti(i번째 땅의 병사수, Ti<=100,000)와, Ti개의 숫자 (각각 병사의 군대 번호)가 주어진다. i번째 땅

www.acmicpc.net

- 풀이

 1. 문제 내용을 보니 갯수를 세서 비교하는 문제였다. 그래서 Counter를 사용했다.

 

 2. 병사의 수를 배열로 입력받는데, 병사의 수 배열 맨 앞에 총 병사의 수가 들어있다. 그래서 배열을 입력받은 다음 해당 값을 pop(0)으로 뺐다.

 

 3. Counter에 있는 most_common이라는 메소드를 사용해 제일 많은 병사의 수를 가져왔다.

 

 4. Counter에 담긴 병사의 수가 총 병사의 수의 과반수 이상이라면 그 땅은 지배당한 것이니 Counter에 담긴 병사의 수를 출력해준다.

 

 5. 그게 아니라면 SYJKGW를 출력한다.

 

- 코드

import sys
from collections import Counter
input = sys.stdin.readline

N = int(input())
for i in range(N):
    A = list(map(int, input().split()))
    count = A.pop(0)

    counter = Counter(A).most_common(n=1)
    if count / counter[0][1] < 2.0:
        print(counter[0][0])
    else:
        print('SYJKGW')
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함