개발 연습장/백준 문제풀이

[파이썬, Python] 백준 1157: 단어 공부

LooanCheong 2022. 12. 3. 17:29
반응형

문제

https://www.acmicpc.net/problem/1157

 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

코드

word = input().upper()
wordli = list(set(word))

cnt = []
for i in wordli:
    count = word.count
    cnt.append(count(i))
    
if cnt.count(max(cnt)) > 1:
    print("?")
else:
    print(wordli[cnt.index(max(cnt))])

설명

우선 단어를 입력받아야 하는데 대소문자의 구분이 없다고 했으므로,
upper(대문자) 혹은 lower(소문자)를 통해서 하나의 문자로 통일시켜 준다.

이후 카운트를 하기 위해 중복을 제거한 문자 리스트를 하나 만들건데,
set을 통해서 중복이 없는 리스트로 생성이 가능하다.

cnt라는 카운트를 저장할 빈 리스트를 하나 만들어 주고,
카운트를 위한 반복문을 생성한다.
count 함수를 통해서 각 문자의 개수를 세주고 이를 cnt리스트에 넣어준다.

cnt의 max 값이 여러개이면 ?를 출력,
그렇지 않은 경우에는 index를 통해서 가장 많이 나온 문자를 출력한다.

반응형