본문 바로가기

알고리즘/python

[python/파이썬] 백준 1159 농구 경기

반응형

[문제 출처]

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

 

1159번: 농구 경기

상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작

www.acmicpc.net

 

[문제 풀이]

 

n명의 선수의 성이 주어질 때, 성의 첫 글자가 같은 선수를 찾는 문제이다.

5명 이상의 선수가 성의 첫 글자가 같다면 해당 글자를 출력하고, 5명 이상 첫 글자가 같은 경우가 없다면 PREDAJA를 출력한다.

출력할 수 있는 글자가 여러 개라면 사전 순으로 공백 없이 출력한다.

 

딕셔너리 자료형을 이용해서 선수의 성을 입력받고 해당 성의 첫 글자를 키로 그리고 값으로는 인원수를 저장하도록 하였다.

따라서 딕셔너리에 해당 글자의 유무를 파악하여 없는 경우는 추가해주고 있는 경우는 인원수를 증가시킨다.

 

딕셔너리에 모두 저장했다면 값이 5 이상인 글자들을 골라서 사전순으로 정렬하여 출력한다.

#1159

n = int(input())

cnt = dict()

for i in range(n):
  player = input()
  if player[0] in cnt.keys():
    cnt[player[0]] += 1
  else:
    cnt[player[0]] = 1

result = []
for k, v in cnt.items():
  if v >= 5:
    result.append(k)

result.sort()
if len(result) > 0:
  print(''.join(result))
else:
  print('PREDAJA')
반응형