-
반응형
안녕하세요! 알고리즘을 사랑하는 여러분, 반갑습니다. 오늘은 "가장 많은 알파벳 찾기" 문제를 다뤄보려고 합니다. 이 문제는 주어진 텍스트에서 가장 많이 등장한 알파벳을 찾는 문제입니다. 자, 그럼 문제를 자세히 살펴보겠습니다.
문제 내용
주어진 텍스트에서 가장 많이 등장한 알파벳을 출력하는 문제입니다.
문제 이해하기
주어진 텍스트는 여러 줄로 이루어져 있습니다. 각 줄은 알파벳과 공백으로 이루어져 있습니다. 텍스트에서 알파벳이 등장할 때마다 해당 알파벳의 카운트를 증가시킵니다. 대소문자는 구분하지 않으며, 공백은 무시합니다. 최종적으로 가장 많이 등장한 알파벳을 출력합니다. 단, 여러 개의 알파벳이 동일한 최다 등장 횟수를 가질 경우, 알파벳들을 사전 순으로 출력합니다.
풀이 코드
pythonCopy code import sys alpha=[0]*26 for line in sys.stdin: for s in line: if s==' ': continue elif s=='\\n': continue idx=ord(s)-97 alpha[idx]+=1 ans=max(alpha) for i in range(len(alpha)): if alpha[i]==ans: print(chr(i+97),end='')
풀이 방법
주어진 텍스트를 한 줄씩 입력받아 처리합니다. 각 줄에서 알파벳을 확인하고, 알파벳이면 해당 알파벳의 카운트를 증가시킵니다. 이때, 대소문자 구분을 없애기 위해 소문자로 변환하고, 공백 및 개행 문자는 무시합니다. 알파벳을 카운트한 후, 가장 큰 카운트 값을 찾아 저장합니다. 마지막으로, 가장 큰 카운트 값을 가진 알파벳들을 사전 순으로 출력합니다.
시간 복잡도
주어진 텍스트의 길이를 N이라고 할 때, 이중 반복문을 사용하여 각 알파벳을 확인하므로 시간 복잡도는 O(N)입니다. 따라서, 입력의 크기에 선형적으로 증가하는 효율적인 알고리즘이라고 할 수 있습니다.
혹시 문제가 잘 안풀리고 답답하신가요? 아래를 눌러 백준 알고리즘 트랜드와 기출문제를 알아보세요! 이것만 알아도 네카라뿌십니다~
반응형'백준' 카테고리의 다른 글
파이썬 백준 알고리즘: 빗물 트래핑 14719 (0) 2023.06.19 파이썬 백준 알고리즘 - 시리얼코드 풀이 해석 (1) 2023.06.19 파이썬 백준 알고리즘 - 3진법 뒤집기 풀이 해석 (0) 2023.06.19 파이썬 백준 알고리즘 - 인기 있는 책 찾기 풀이 해석 (0) 2023.06.19 파이썬 백준 알고리즘 - 등수 구하기 풀이 해석 (1) 2023.06.19