강의

멘토링

로드맵

Inflearn brand logo image

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

하얀곰님의 프로필 이미지
하얀곰

작성한 질문수

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

1-5. 알고리즘과 친해지기 (2)

코드 피드백 부탁드립니다,

해결된 질문

작성

·

176

0

아래의 코드는 강사님의 최종 작성 코드를 확인 전, 제가 생각해서 작성한 코드입니다.

def find_max_occurred_alphabet(string):

alphabet_occurrence_array = [0] * 26

for char in string:

if char.isalpha():

arr_index = ord(char) - ord('a')

alphabet_occurrence_array[arr_index] += 1

max_num = alphabet_occurrence_array[0]

max_alphabet_index = -1

max_occurred_alphabet = 0

for number in alphabet_occurrence_array:

max_alphabet_index +=1

if max_num < number:

max_num = number

max_occurred_alphabet = max_alphabet_index + ord('a')

return chr(max_occurred_alphabet)

 

강사님께서 작성하신 코드와 비교해보니, 확실히 강사님께서 작성하신 코드가 더 심플해보였습니다.

1-6 강의를 듣고 확인해보니, 시간복잡도 측면에서는 강사님께서 작성주신 코드와 차이가 없음을 확인하였습니다.

제 구현 방식에 대해 앞으로 코드를 작성 시, 어떻게 풀이 방향을 잡고 구현을 해야하는지, 현재 코드에서의 개선점에 대해 피드백 주시면 감사드리겠습니다.

답변 1

0

딩코딩코님의 프로필 이미지
딩코딩코
지식공유자

안녕하세요 하얀곰님!!

적극적인 자세 너무 좋습니다!!

 

그런데 코드 형식에 따라 인덴트가 현재 파악할수가 없는 상황이라, 코드 블록을 이용해서 다시 코드 부분 공유가 가능하실까요?

하얀곰님의 프로필 이미지
하얀곰
질문자

def find_max_occurred_alphabet(string):
    alphabet_occurrence_array = [0] * 26
    for char in string:
        if char.isalpha():
            arr_index = ord(char) - ord('a')
            alphabet_occurrence_array[arr_index] += 1

    max_num = alphabet_occurrence_array[0]
    max_alphabet_index = -1
    max_occurred_alphabet = 0
    for number in alphabet_occurrence_array:
        max_alphabet_index +=1
        if max_num < number:
            max_num = number
            max_occurred_alphabet = max_alphabet_index + ord('a')

    return chr(max_occurred_alphabet)


result = find_max_occurred_alphabet
print("정답 = i 현재 풀이 값 =", result("hello my name is dingcodingco"))
print("정답 = e 현재 풀이 값 =", result("we love algorithm"))
print("정답 = b 현재 풀이 값 =", result("best of best youtube"))
딩코딩코님의 프로필 이미지
딩코딩코
지식공유자

안녕하세요 하얀곰님!

 

우선 제가 봤을 때 사실 큰 문제는 없어보이는 코드입니다!

변수 선언도 의미를 담아서 잘 해주셨고, 코드 자체의 흐름도 크게 다르지 않다고 생각합니다.

정말 세세한 코드 피드백의 관점에서만 몇가지 드리자면 다음과 같습니다!

 

  1. max_alphabet_index = -1 보다는 0으로 초기화를 시키는게 더 좋을 것 같습니다. 인덱스의 값을 -1부터 시작한다는 것보다 0으로 시작해서 첫번째 원소부터 탐색해나간다는 것이 더 인지하기 수월할 것 같습니다.

  2. max_occurred_alphabet 는 0으로 초기화되고 있는데, 이는 사실 처음봤을 때 인지하기 힘듭니다. 알파벳인데 0이 초기값으로 들어가네?! 이 점이 처음 코드를 해석할 때 이해하기 어려울 수 있습니다. 따라서 해당 변수를 아예 사용하지 않고 max_alphabet_index만 쓰다가 마지막에 변환해보시는 건 어떨까 싶습니다

 

하얀곰님의 프로필 이미지
하얀곰
질문자

친절한 피드백에 진심으로 감사드립니다!

딩코딩코님의 프로필 이미지
딩코딩코
지식공유자

아닙니다!!! 빠이팅이십니다!!

하얀곰님의 프로필 이미지
하얀곰

작성한 질문수

질문하기