Hey Tech

문자열처리 #백준1157 #단어 공부 | 파이썬 풀이 본문

알고리즘/문제풀이

문자열처리 #백준1157 #단어 공부 | 파이썬 풀이

Tony Park (토니) 2021. 10. 9. 09:25
728x90
반응형

📚  문제

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

 

1157번: 단어 공부

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

www.acmicpc.net

💡 접근법

문자열 내 알파벳별 출현 횟수를 카운트하기 위해 파이썬 collections 라이브러리 내 Counter 모듈을 활용하였습니다.

최다 빈출 알파벳을 추출하기 위해 Counter 모듈에서 most_commons 함수를 활용하였습니다.

출현 횟수가 공동 1위인 알파벳이 있을 경우를 처리하기 위해 출현 빈도 1위와 2위를 비교하였습니다.

💻  코드

# https://www.acmicpc.net/problem/1157
from collections import Counter
input_string = input().lower() # 모든 문자 소문자로 치환
if len(input_string) == 1: # 문자열 길이가 1인 경우
    print(input_string.upper()) # 대문자로 출력
else: # 문자열 길이가 2 이상인 경우
    # 최다빈출 알파벳 2개 정보 선정
    char_cnt = Counter(input_string).most_common(2)
    # 출현 횟수가 공동 1위인 경우
    if char_cnt[0][1] == char_cnt[1][1]:
        print("?")
    # 출현 횟수가 단독 1위인 경우
    else:
        print(char_cnt[0][0].upper())

✅ 정답 확인

👨‍💻 파이썬 파일(Github)

https://github.com/park-gb/algorithm-problem-solving/blob/main/string/boj_1157.py

 

GitHub - park-gb/algorithm-problem-solving: 알고리즘 문제 풀이 및 정리

알고리즘 문제 풀이 및 정리. Contribute to park-gb/algorithm-problem-solving development by creating an account on GitHub.

github.com


포스팅 내용에 오류가 있거나 조언/지적/피드백 환영입니다!😄

아래에 👇👇👇 댓글 남겨주시면 감사드리겠습니다.

그럼 오늘도 즐겁고 건강한 하루 보내시길 바랍니다 :)

고맙습니다.

728x90
반응형