각 알파벳의 빈도수를 alphabet_occurrence_list 라는 변수에 저장합니다. 그리고 각 문자열을 돌면서 해당 문자가 알파벳
인지 확인하고, 알파벳을 인덱스 화 시켜 각 알파벳의 빈도수를 업데이트 합니다.
이후, 알파벳의 빈도수가 가장 높은 인덱스를 찾습니다.
** 대문자와 소문자의 아스키코드 값이 다르므로 .lower()를 이용하여 소문자로 치환
def find_max_occurred_alphabet(string):
string = string.lower()
alphabet_occurrence_array = [0] * 26
for char in string:
if not char.isalpha():
continue
arr_index = ord(char) - ord('a')
alphabet_occurrence_array[arr_index] += 1
max_occurrence = 0
max_alphabet_index = 0
for index in range(len(alphabet_occurrence_array)):
alphabet_occurrence = alphabet_occurrence_array[index]
if alphabet_occurrence > max_occurrence:
max_occurrence = alphabet_occurrence
max_alphabet_index = index
return chr(max_alphabet_index + ord('a'))
result = find_max_occurred_alphabet
print("정답 = a 현재 풀이 값 =", result("Hello my name is sparta"))
print("정답 = a 현재 풀이 값 =", result("Sparta coding club"))
print("정답 = s 현재 풀이 값 =", result("best of best sparta"))
'프로그래밍 > Algorithm' 카테고리의 다른 글
배열에서 특정 요소 찾기 (파이썬 python) (0) | 2022.08.03 |
---|---|
시간복잡도, 공간 복잡도, 점근 표기법 (0) | 2022.08.03 |
[백준] 10819 - 차이를 최대로 (파이썬 python) (0) | 2022.06.14 |
[백준] 1182 - 부분수열의 합 (파이썬 python) (0) | 2022.06.09 |
[백준] 2577 - 숫자의 개수 (파이썬 python) (0) | 2022.06.09 |