백준 1157 단어공부 (python)

김서영·2024년 1월 24일
0

알고리즘

목록 보기
15/20

📃 문제

백준 1157 단어공부

💟 코드

# 백준 1157 단어공부
import sys
sys.stdin = open('input.txt', 'r')

word = list(input().lower())
word_set = list(set(word)) # 주어진 단어에 있는 알파벳들의 중복을 없앤 리스트
max_val = 0 # 알파벳 최대 개수
ans = '' # 결과값
for i in range(len(word_set)):
    cnt = word.count(word_set[i]) # 해당 단어의 개수
    if max_val < cnt: # 해당 단어의 개수가 최대 개수보다 크면
        max_val = cnt # 최대 개수값 바꿔주기
        ans = word_set[i].upper() # 결과값에 대문자로 저장
    word_set[i] = cnt # 알파벳을 해당 알파벳 개수로 바꿔주기
check = word_set.count(max_val) # 알파벳 최대 개수의 개수
if check > 1:
    ans = '?'
print(ans)

✨ 코드 풀이

  1. 먼저 받은 단어를 소문자로 바꾸면서 리스트로 하나씩 쪼개고(word) 그 값에서 중복을 없앤 값(word_set)도 만들어놨다!!

  2. 그리고 알파벳의 최대 개수(max_val), print할 결과값(ans)을 변수로 정해주고 반복문을 통해 알파벳의 개수를 하나씩 세면서 max_val과 값을 비교하며 max_val과 ans의 값을 바꿔주었다!

    그리고 word_set의 알파벳들을 해당 알파벳의 개수로 다 변경!

  3. max_val의 개수를 세는 check 변수를 만들고, check가 1보다 크면(알파벳 최대 개수가 여러개면) ans값을 ?로 변경!

profile
개발과 지식의 성장을 즐기는 개발자

0개의 댓글