inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

해결된 질문

199

하얀곰

작성한 질문수 4

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

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

python 코딩-테스트 알고리즘 data-structure

답변 1

0

딩코딩코

안녕하세요 하얀곰님!!

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

 

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

1

하얀곰

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

딩코딩코

안녕하세요 하얀곰님!

 

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

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

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

 

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

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

 

1

하얀곰

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

0

딩코딩코

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

수강평 이벤트

0

34

2

코딩테스트 처음인데 이런 공부방법이어도 괜찮을까요

0

70

2

3-3 정렬-2 선택정렬 로직

0

43

2

링크드 리스트 끝에서 k번째 값 출력하기

0

46

2

LinkedList 과제 Fast, slow 포인터

0

50

2

투포인터 시간복잡도

0

53

2

수강평 작성 후 자료

0

53

2

수업교재 링크 오류

2

114

2

프로그래머스에서 제출 후 채점시 틀림ㅠ

0

133

2

1-10 알고리즘 더 풀어보기(2) 질문 있습니다

0

76

2

문제 풀이 방식 관련 질문입니다!

0

88

2

1-5 알고리즘과 친해지기 (2) - 최빈값찾기 질문 있습니다

0

94

2

수업자료 pdf 받고싶습니다

0

108

2

강의 자료 오류 수정

0

75

1

2-10 더하거나 빼거나 관련 질문입니다

0

63

2

3-8 해쉬 -2

0

49

2

Linked List Element Delete Explanation Problem

0

69

2

강의3-4 스택 탑 문제

0

74

2

코드스니펫 입출력 케이스에 오류가 있는것 같아요

0

100

3

링크드 리스트 원소 찾기 구현 방식 질문드립니다.

0

76

2

1874 - 스택 문항

0

81

2

DP Java 예제 자료형 오버플로우 문제

0

100

2

4-9 4주차 숙제중 농심라면 문제

0

111

2

DFS 에서 스택을 사용하는 이유

1

187

3