白俊-バスケットボール試合(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으로 푼 경우
Reference
この問題について(白俊-バスケットボール試合(1159)), 我々は、より多くの情報をここで見つけました https://velog.io/@skkfea07/백준-농구-경기1159テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol