인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Jin님의 프로필 이미지
Jin

작성한 질문수

38군데 합격 비법, 2024 코딩테스트 필수 알고리즘

1-5 알고리즘과 친해지기 (2) - 최빈값(알파벳) 구하기

작성

·

12

0

1. 현재 학습 진도

  • 몇 챕터/몇 강을 수강 중이신가요?: 1-5 알고리즘과 친해지기 (2)

     

  • 어떤 알고리즘을 학습하고 계신가요?: 최빈값 찾기(알파벳)

  • 여기까지 이해하신 내용은 무엇인가요?:

     

    1. 'a' -> ord('a') -> 97 -> chr(97) -> 'a' 이고, 'A' -> ord('A') -> 65 -> chr(65) -> 'A' 이다. 아스키 코드를 활용하고, 가장 기본이 되는 원리는 이렇다.

    2. 0이 26개인 배열(a_o_a)을 만들고, 주어진 문자열(string)을 반복문으로 순회한다. (for char in string: ... )

    3. ord('a') - ord('a') = 0 이고, ord('b') - ord('a') = 1 이고, ... 이 원리에 따라 ord(char) - ord('a') 를 하면, char가 몇 번째 순서의 알파벳인지 구할 수 있다. 이를 0이 26개인 배열(a_o_a)의 인덱스(i)로 활용한다.

    4. string을 반복문으로 순회하면서, (만약 숫자나 띄어쓰기가 아니고 알파벳이라면) a_o_a[i] += 1 을 한다. a_o_a 에 각 알파벳의 빈도수가 저장이 된다.

    5. a_o_a를 반복문으로 순회하면서, max_alphabet_index를 구한다.

    6. chr(max_alphabet_index + ord('a')) 을 하면 최종적으로 최다 빈도수인 알파벳이 구해진다.

     

 

2. 어려움을 겪는 부분

image.pngimage.png

 

저는 string.count(char)를 이용하여 풀었습니다. 그런데 이 아스키 코드 원리를 활용한 알고리즘이 많이 출제되나요? 코테 출제하시는 분들께서 아스키 코드를 활용한 로직을 더 선호하시는지 궁금합니다!

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
Jin님의 프로필 이미지
Jin

작성한 질문수

질문하기