λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

μ½”λ”© ν…ŒμŠ€νŠΈ/Baejoon

[λ°±μ€€] 1157번 - 단어 곡뢀

πŸ“– λ¬Έμ œ

μ•ŒνŒŒλ²³ λŒ€μ†Œλ¬Έμžλ‘œ 된 단어가 주어지면, 이 λ‹¨μ–΄μ—μ„œ κ°€μž₯ 많이 μ‚¬μš©λœ μ•ŒνŒŒλ²³μ΄ 무엇인지 μ•Œμ•„λ‚΄λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. 단, λŒ€λ¬Έμžμ™€ μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜μ§€ μ•ŠλŠ”λ‹€.

 

첫째 쀄에 이 λ‹¨μ–΄μ—μ„œ κ°€μž₯ 많이 μ‚¬μš©λœ μ•ŒνŒŒλ²³μ„ λŒ€λ¬Έμžλ‘œ 좜λ ₯ν•œλ‹€. 단, κ°€μž₯ 많이 μ‚¬μš©λœ μ•ŒνŒŒλ²³μ΄ μ—¬λŸ¬ 개 μ‘΄μž¬ν•˜λŠ” κ²½μš°μ—λŠ” ?λ₯Ό 좜λ ₯ν•œλ‹€.

πŸ‘€ μΆœμ œμ˜λ„

리슀트λ₯Ό μ‚¬μš©ν•΄μ„œ μ‚¬μš©λœ μ•ŒνŒŒλ²³μ˜ 개수λ₯Ό μ•Œ 수 μžˆλŠ”μ§€

🧾 μ½”λ“œ

words = input().upper() # 단어 μž…λ ₯
unique_words = list(set(words)) # μž…λ ₯ν•œ 단어λ₯Ό list둜 μ €μž₯(쀑볡 X)

cnt_list = [] # 리슀트 μ΄ˆκΈ°ν™”
for x in unique_words : # μž…λ ₯ν•œ λ‹¨μ–΄λ§ŒνΌ 반볡
    cnt = words.count(x) # μž…λ ₯ν•œ λ‹¨μ–΄μ˜ μ•ŒνŒŒλ²³μ„ μž…λ ₯ν•œ 단어와 λΉ„κ΅ν•˜λ©° 개수λ₯Ό μ…ˆ
    cnt_list.append(cnt) # μ‚¬μš©λœ μ•ŒνŒŒλ²³μ˜ 개수λ₯Ό μ €μž₯

if cnt_list.count(max(cnt_list)) > 1 : # λ§Œμ•½ κ°€μž₯ 많이 μ‚¬μš©λœ μ•ŒνŒŒλ²³μ΄ μ—¬λŸ¬ 개일 경우 
    print('?') # ? 좜λ ₯
else : # 아닐 경우
    # cnt_listμ—μ„œ κ°€μž₯ 많이 μ‚¬μš©λœ μ•ŒνŒŒλ²³μ˜ 인덱슀λ₯Ό max_index에 μ €μž₯
    max_index = cnt_list.index(max(cnt_list))
    print(unique_words[max_index]) # κ°€μž₯ 많이 μ‚¬μš©λœ μ•ŒνŒŒλ²³μ˜ 인덱슀 값을 좜λ ₯

πŸ’» ν’€μ΄μ„€λͺ…

1. κ°€μž₯ 많이 μ‚¬μš©λœ μ•ŒνŒŒλ²³μ΄ 무엇인지 μ•Œμ•„λ‚΄λŠ” 단어λ₯Ό μž…λ ₯ν•˜κ³  κ°€μž₯ 많이 μ‚¬μš©λœ μ•ŒνŒŒλ²³μ„ λŒ€λ¬Έμžλ‘œ 좜λ ₯ν•΄μ•Όν•˜λ―€λ‘œ upper()을 μ΄μš©ν•˜μ—¬ μž…λ ₯ν•œ 단어λ₯Ό λŒ€λ¬Έμžλ‘œ λ³€ν™˜ν•œλ‹€.

2. μž…λ ₯ν•œ 단어λ₯Ό set()을 μ‚¬μš©ν•΄μ„œ 쀑볡 μ•ŒνŒŒλ²³μ„ μ—†μ• κ³  list()을 μ΄μš©ν•˜μ—¬ list둜 ν•œ μ•ŒνŒŒλ²³μ”© μ €μž₯ν•œλ‹€.

3. κ°€μž₯ 많이 μ‚¬μš©λœ μ•ŒνŒŒλ²³μ„ μ•ŒκΈ° μœ„ν•΄μ„œ for문을 μ΄μš©ν•˜μ—¬ μž…λ ₯ν•œ λ‹¨μ–΄λ§ŒνΌ 반볡

4. count()을 μ΄μš©ν•˜μ—¬ μž…λ ₯ν•œ λ‹¨μ–΄μ˜ μ•ŒνŒŒλ²³μ„ μž…λ ₯ν•œ 단어와 λΉ„κ΅ν•˜μ—¬ 개수λ₯Ό cnt에 μ €μž₯

5. append()을 μ΄μš©ν•˜μ—¬ μ‚¬μš©λœ μ•ŒνŒŒλ²³μ˜ 개수λ₯Ό cnt_list에 μ €μž₯

6. λ§Œμ•½ κ°€μž₯ 많이 μ‚¬μš©λœ μ•ŒνŒŒλ²³μ΄ μ—¬λŸ¬ 개일 경우 ?을 좜λ ₯ν•˜κ³  κ°€μž₯ 많이 μ‚¬μš©λœ μ•ŒνŒŒλ²³μ΄ μ—¬λŸ¬ κ°œκ°€ 아닐 경우, max()을 μ΄μš©ν•˜μ—¬ μ΅œλŒ“κ°’μ„ κ΅¬ν•˜κ³  index()을 μ΄μš©ν•˜μ—¬ μ΅œλŒ“κ°’μ˜ 인덱슀λ₯Ό κ΅¬ν•˜μ—¬ max_index에 μ €μž₯ν•©λ‹ˆλ‹€.

7. κ°€μž₯ 많이 μ‚¬μš©λœ μ•ŒνŒŒλ²³μ˜ 인덱슀 값을 좜λ ₯. 

πŸ“ ν•™μŠ΅λ°©λ²•

리슀트 μ‚¬μš©λ°©λ²•κ³Ό python λ‚΄μž₯ν•¨μˆ˜ ν•™μŠ΅ν•˜κΈ°.