BOJ/백준-1157-python

cosmos·2021년 3월 31일
2
post-thumbnail

문제📖

풀이🙏

  • 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하라.
  • 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다.
  • 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력하라.
  • 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력하라.
  • 단, 대문자와 소문자를 구분하지 않는다.
    -> collections 모듈의 Counter함수를 이용해 최빈값을 구했다.
    -> 문제 조건에서 대소문자 구분이 없다해서 lower()함수로 대문자를 모두 소문자로 치환시켰다.
    -> list에 최빈값을 append하였으며 len이 1일 경우에는 최빈값이 하나인 경우이므로 0번째 indexreturn하고 그렇지 않은 경우에는 최빈값이 복수인 경우이므로 ?을 return하도록 하였다.
    -> upper()함수로 가장 많이 사용된 알파벳을 대문자로 반환하였다.

코드💻

# boj, 1157 : 단어 공부, python3
from collections import Counter 

def most_common(word): 
    word = word.lower()
    c = Counter(word) 
    nums = c.most_common() 
    maximum = nums[0][1]
            
    result = [num[0] for num in nums if num[1] == maximum]
    
    return result[0].upper() if len(result) == 1 else '?'

word = str(input())

print(most_common(word))

결과😎

출처 && 깃허브📝

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

0개의 댓글