https://www.acmicpc.net/problem/1159
Problem
- 상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다.
- 누가 선발인지 기억하기 쉽게 하기 위해 성의 첫 글자가 같은 선수 5명을 선발하려고 한다.
- 만약, 성의 첫 글자가 같은 선수가 5명보다 적다면, 상근이는 내일 있을 친선 경기를 기권하려고 한다. 상근이는 내일 경기를 위해 뽑을 수 있는 성의 첫 글자를 모두 구해보려고 한다.
조건
- 첫째 줄에 선수의 수 N (1 ≤ N ≤ 150)이 주어진다. 다음 N개 줄에는 각 선수의 성이 주어진다. (성은 알파벳 소문자로만 이루어져 있고, 최대 30글자이다)
- 상근이가 선수 다섯 명을 선발할 수 없는 경우에는 "PREDAJA" (따옴표 없이)를 출력한다. PREDAJA는 크로아티아어로 항복을 의미한다. 선발할 수 있는 경우에는 가능한 성의 첫 글자를 사전순으로 공백없이 모두 출력한다.
SOL
Dictionary를 이용해서, 세어줬다. 첫글자를 기준으로 숫자를 센 뒤에, ans에 사전순으로 정리한다음, 출력해주면 된다!
import sys
input= sys.stdin.readline
N=int(input().rstrip())
names=[input().rstrip() for _ in range(N)]
player={}
ans=[]
for name in names:
if player.get(name[0])==None:
player[name[0]]=1
else:
player[name[0]]+=1
for p in player:
if player[p]>=5:
ans.append(p)
if ans:
ans.sort()
print(''.join(ans))
else:
print("PREDAJA")
'알고리즘 문제(SOL)' 카테고리의 다른 글
[백준/2234/파이썬] 성곽 (0) | 2022.02.21 |
---|---|
[백준/17089/파이썬] 세 친구 (0) | 2022.02.21 |
[백준/6087/파이썬] 레이저 통신 (0) | 2022.02.20 |
[백준/2210/파이썬] 숫자판 점프 (0) | 2022.02.20 |
[백준/2933/파이썬] 미네랄 (0) | 2022.02.19 |