
강의의 2번째 방법에서는 입력 받은 문자열을 돌면서 알파벳의 빈도수를 모두 업데이트 한 뒤
알파벳 빈도수가 들어있는 리스트를 돌면서 빈도수가 가장 높은 알파벳의 인덱스를 찾는 방법이었습니다.
아래 제가 작성한 코드는 2번째 방법과 비슷하면서 조금 다르게 구성하여
입력 받은 문자열을 돌면서 알파벳의 빈도수를 업데이트 한 뒤 바로 가장 높은 알파벳인지 바로 확인하였습니다.
제가 작성한 코드에서
def find_max_occurred_alphabet(p_input):
alphabet_occurrence_array = [0] * 26 # 대입연산 1번
standard = ord('a') # 대입연산 1번
max_idx = 0 # 대입연산 1번
# >> 대입연산 3번
# p_input 길이(n)만큼 아래 연산이 실행
for item in p_input:
if item.isalpha() == True: # 비교연산 1번
item_idx = ord(item) - standard # 대입연산 1번
alphabet_occurrence_array[item_idx] += 1 # 대입연산 1번
item_occurrence = alphabet_occurrence_array[item_idx] # 대입연산 1번
if item_occurrence > alphabet_occurrence_array[max_idx]: # 비교연산 1번
max_idx = item_idx # 대입연산 1번
# >> p_input의 길이 * (비교연산 2번 + 대입연산 2번) = 4N
return chr(max_idx + 97), alphabet_occurrence_array[max_idx]
input = "hello my name is sparta"
result = find_max_occurred_alphabet(input)
print(result) # >> ('a', 3)
print(f"'{input}'에서 '{result[0]}' 가 총 {result[1]} 번으로 가장 많이 나옴")
