白俊-バスケットボール試合(1159)



String


質問する


尚根のバスケットボール界での影響力は徐々に拡大している.最初はバスケットボールの試合が好きだった.バスケットボールに対する情熱は彼を止められず、最後に尚根はバスケットボール場の掃除を始めた.尚根もバスケットボールコートを掃除しながら、コーチになる能力を学んだ.犬が3年間月を詠んだように、尚根は次第に監督に一歩踏み出した.ある日、彼は地方のプロバスケットボールチームを教える機会があった.彼は大きなリーダーシップを発揮し、プロリーグで優勝し、現在は代表チームの監督となっている.
明日は日本と代表チームの親善試合の日です.尚根は明日の試合の選抜リストを記入しなければならない.
代表チームの監督になってから、尚勤は怠け者になった.彼は選手の名前も覚えていないし、選手一人一人の能力も知らない.そこで、先発選手を覚えやすくするために、同姓の選手を5人選抜します.城の最初の字が同じ選手が5人未満なら、尚根は明日の親善試合を棄権する.
尚根は明日の試合のために、取れる城の最初の字を探し出す.

入力


1行目には選手数N(1≦N≦150)が与えられる.次のN行は選手一人一人の姓です.(姓は小文字のみで、最大30文字)

しゅつりょく


尚根が5人の選手を選抜できない場合は「PREDAJA」(引用符なし)と出力します.PREDAJAはクロアチア語で降伏を意味する.選べる場合は、できるだけ姓の最初の字を辞書順に空白なくすべて印刷します.
import sys

N = int(sys.stdin.readline())
dic = {}
answer = ''

for i in range(N):
    a = input().strip()
    if a[0] not in dic:
        dic[a[0]] = 1
    elif a[0] in dic:
        dic[a[0]] += 1
        if dic[a[0]] == 5:
            answer += dic[a[0]]
            
if len(answer) == 0:
    print('PREDAJA')
else:
    print(answer)
        
        
# dictionary로 풀다가 막힌 경우
import sys

N = int(sys.stdin.readline())
words = [] # 각 단어별로 첫 글자를 담는 배열
alphabet = set([]) # 각 글자의 빈도를 알기 위해 중복이 허용안되는 set + 배열
counting = [] # 최종 빈도를 담은 배열

for i in range(N):
    a = input()
    words.append(a[0])
    alphabet.add(a[0])
    
    
for i in alphabet:
    c = words.count(i)
    if c >= 5:
        counting.append(i)
    
counting.sort() # 사전순 정렬
if len(counting):
    print(''.join(counting))
else:
    print("PREDAJA")


# 배열과 set으로 푼 경우