inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

해결된 질문

234

수빈 오

작성한 질문수 3

2

1. 현재 학습 진도

2. 어려움을 겪는 부분

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

답변 1

0

딩코딩코

안녕하세요 수빈님!! 좋은 질문 감사드립니다!!

 

수빈님의 관점에서 또 너무 좋은 내용을 공유해주신 것 같습니다!!

 

 

해당 코드에서 발생하는 혼란스러운 부분에 대해 제 기준에서 정리해보면 다음과 같습니다.

반복되지 않는 첫 번째 알파벳을 찾는 문제에서, '첫 번째'라는 기준이 모호합니다. 이는 두 가지 관점에서 해석될 수 있기 때문입니다:

  1. 알파벳 순서상 첫 번째 (a -> b -> c -> d ...)

  2. 입력된 문자열에서의 등장 순서상 첫 번째

예를 들어 "abadabac" 문자열에서:

  • 반복되지 않는 문자는 'c'와 'd'입니다

  • 알파벳 순서로는 'c'가 'd'보다 먼저입니다

  • 문자열 등장 순서로는 'd'가 'c'보다 먼저 나옵니다

현재 구현된 코드는 알파벳 순서를 기준으로 동작하도록 되어 있습니다. 이는 not_repeating_character_array를 만들 때 알파벳 순서대로 검사하기 때문입니다.

두 가지 접근 방식 모두 유효한 해결책이 될 수 있으며, 문제의 요구사항에 따라 선택하면 됩니다. 다만 이런 경우에는 어떤 기준을 사용했는지 주석이나 문서에 명확히 명시해주는 것이 좋습니다.

따라서 해당 내용에 대해서는 문서를 기준으로 추가적으로 작성해두도록 하겠습니다

강의가 더 자세해질 수 있도록 좋은 질문해주셔서 넘넘 감사드립니다!!

1

수빈 오

강사님 안녕하세요 🙂

답변 감사합니다
제가 문의드린 부분은 '최빈값 찾기' find_max_occurred_alphabet 함수에 대해 문의드린 것이었습니다!

def find_max_occurred_alphabet(string):
    alphabet_occurrence_array = [0] * 26

    for char in string:
        if not char.isalpha():
            continue
        arr_index = ord(char) - ord('a')
        alphabet_occurrence_array[arr_index] += 1

    max_occurrence = 0
    max_alphabet_index = 0
    for index in range(len(alphabet_occurrence_array)):
        alphabet_occurrence = alphabet_occurrence_array[index]
        if alphabet_occurrence > max_occurrence:
            max_occurrence = alphabet_occurrence
            max_alphabet_index = index

    return chr(max_alphabet_index + ord('a'))

위 함수에 관하여 전달되는 인자 값들이 아래와 같았습니다.

print("정답 = i 현재 풀이 값 =", result("hello my name is dingcodingco"))
print("정답 = e 현재 풀이 값 =", result("we love algorithm"))
print("정답 = b 현재 풀이 값 =", result("best of best youtube"))

위의 인자값에서는 최빈값의 알파벳이 각 print마다 1개 이상이었습니다 🙂 그런데 위 함수는 알파벳 순서상 가장 앞에 위치한 최빈값을 출력하고 있습니다.
그래서 어? 최빈값이 여러개인데 왜 한개만 출력되지? 라는 생각이 드는 문제여서 처음 문제에서 조건이 제시되면 어떨까 제안드려 봅니다


다음과 같은 문자열을 입력받았을 때, 어떤 알파벳이 가장 많이 포함되어 있는지 반환하시오
라는 문제에서

=> 다음과 같은 문자열을 입력받았을 때, 어떤 알파벳이 가장 많이 포함되어 있는지 반환하시오 (단 최빈값을 가진 알파벳이 여러개일 경우 알파벳 순서가 가장 앞에 위치한 알파벳을 출력하시오)
라는 추가 설명이 있으면 어떨까 싶습니다 🙂
혹시 제가 잘못 이해하고 있는 부분이 있다면 설명 부탁드립니다 감사합니다

+ ) 또한 강사님께서 추가해주신
첫번째로 반복되지 않는 문자의 기준이 뭐에요?
자료도 확인해보았습니다. 빠른 피드백 감사합니다.

' 첫번째로 반복되지 않는 문자' 에 관련된 내용은 5. 알고리즘과 친해지기 (2) 가 아닌 10. 알고리즘 더 풀어보기(2) 와 관련이 있는 내용인 것 같아서 말씀드립니다. 자료 위치를 변경하면 좋을 것 같습니다.
항상 친절한 답변 감사드립니다.

0

딩코딩코

안녕하세요 수빈님! 상세한 설명 감사드립니다

 

말씀해주신 아래 추가 서술 내용 문제의 질문 부분에 추가해두겠습니다 감사드립니다!!

(단 최빈값을 가진 알파벳이 여러개일 경우 알파벳 순서가 가장 앞에 위치한 알파벳을 출력하시오)

 

그런데 find_max_occurred_alphabet 함수는 5. 알고리즘과 친해지기 (2) 에서 구현하고 있어서 그 쪽에 위치하는 게 맞을 것 같은데 아닐까요?_?

1

수빈 오

반영 감사합니다 🙂

첫번째로 반복되지 않는 문자의 기준이 뭐에요?
반복되지 않는 문자와 관련된 내용이라고 생각했는데 find_max_occurred_alphabet 함수에서는 사실 첫번째로 반복되지 않는 문자랑은 크게 관련이 없고,
10. 알고리즘 더 풀어보기 (2)에서 나오는
Q. 다음과 같이 영어로 되어 있는 문자열이 있을 때, 이 문자열에서 반복되지 않는 첫번째 문자를 반환하시오. 만약 그런 문자가 없다면 _ 를 반환하시오.

이 문제와 관련성이 크다고 생각하여 말씀드린 것이었습니다!
사실 큰 의미가 있는 부분은 아니어서 굳이 변경하지 않아도 차이는 없을 것 같습니다 🙂
신경써주셔서 감사합니다~!!

0

딩코딩코

앗 그렇네요!!!!!!

ㅋㅋㅋㅋㅋㅋ아니 제가 뭐가 씌였나 봅니다

수빈님 : 1-5 질문

저 : 1-10 대답 & 1-5에 추가 내용 작성

 

했네요 ㅋㅋㅋㅋㅋ

올바르게 수정해두겠습니다 에고 감사드립니다!!

피드백 주심에 대한 감사의 의미로 커피 기프티콘을 드리겠습니다 아래 카카오톡 오픈 링크로 연락 부탁드립니다!!

https://open.kakao.com/me/ding_coding_co

감사합니다

수강평 이벤트

0

34

2

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

0

68

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

87

2

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

0

93

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