작성
·
12
0
몇 챕터/몇 강을 수강 중이신가요?: 1-5 알고리즘과 친해지기 (2)
어떤 알고리즘을 학습하고 계신가요?: 최빈값 찾기(알파벳)
여기까지 이해하신 내용은 무엇인가요?:
'a' -> ord('a') -> 97 -> chr(97) -> 'a' 이고, 'A' -> ord('A') -> 65 -> chr(65) -> 'A' 이다. 아스키 코드를 활용하고, 가장 기본이 되는 원리는 이렇다.
0이 26개인 배열(a_o_a)을 만들고, 주어진 문자열(string)을 반복문으로 순회한다. (for char in string: ... )
ord('a') - ord('a') = 0 이고, ord('b') - ord('a') = 1 이고, ... 이 원리에 따라 ord(char) - ord('a') 를 하면, char가 몇 번째 순서의 알파벳인지 구할 수 있다. 이를 0이 26개인 배열(a_o_a)의 인덱스(i)로 활용한다.
string을 반복문으로 순회하면서, (만약 숫자나 띄어쓰기가 아니고 알파벳이라면) a_o_a[i] += 1 을 한다. a_o_a 에 각 알파벳의 빈도수가 저장이 된다.
a_o_a를 반복문으로 순회하면서, max_alphabet_index를 구한다.
chr(max_alphabet_index + ord('a')) 을 하면 최종적으로 최다 빈도수인 알파벳이 구해진다.
저는 string.count(char)를 이용하여 풀었습니다. 그런데 이 아스키 코드 원리를 활용한 알고리즘이 많이 출제되나요? 코테 출제하시는 분들께서 아스키 코드를 활용한 로직을 더 선호하시는지 궁금합니다!
답변