본문 바로가기
알고리즘

알고리즘 2

by 이성호 2021. 12. 14.

최댓값 찾기

input = [3, 5, 6, 1, 2, 4]


def find_max_num(i):
    for num in i:			#num에 비교 대상 숫자를 나열
        for num2 in i:		#num2에 비교 할 숫자를 나열
            if num2 > num:
                break		#num2가 num보다 클 경우 반복문을 빠져나오고 다음 숫자와 비교
        else:
            return num		#num이 num2보다 클 경우 num을 반환


result = find_max_num(input)
print(result)
input = [3, 5, 6, 1, 2, 4]

def find_max_num(array):
    max_num = array[0]      #초기값 설정
    for num in array:       #반복문을 통해 하나씩 비교
        if num > max_num:
            max_num = num   #num이 max_num보다 클 경우 max_num에 num의 값을 입력

    return max_num

result = find_max_num(input)
print(result)

최빈값 찾기

def find_alphabet_occurrence_array(string):
    alphabet_occurrence_array = [0] * 26		#알파벳별 빈도수를 저장할 배열

    for c in string:
        if not c.isalpha():
            continue					#c가 알파벳이 아닐 경우, 다음 배열로 넘어감
        i = ord(c) - ord('a')			#c가 알파벳일 경우, 아스키 키값으로 변환
        alphabet_occurrence_array[i] += 1	#아스키 키값에 맞는 배열의 빈도수를 증가
    return alphabet_occurrence_array

print(find_alphabet_occurrence_array("hello my name is sparta"))
input = "hello my name is sparta"


def find_max_occurred_alphabet(string):
    alphabet_array = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
                      "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]

    max_occurrence = 0
    max_alphabet = alphabet_array[0]

    for a in alphabet_array:
        occurrence = 0
        for char in string:
            if char == a:
                occurrence += 1

        if occurrence > max_occurrence:
            max_occurrence = occurrence
            max_alphabet = a

    return max_alphabet


result = find_max_occurred_alphabet(input)
print(result)
input = "hello my name is sparta"


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]  #index 0 -> alphabet occurrence 3
        if alphabet_occurrence > max_occurrence:
            max_alphabet_index = index
            max_occurrence = alphabet_occurrence
    return chr(max_alphabet_index + ord('a'))       #아스키 코드를 문자로 변환


result = find_max_occurred_alphabet(input)
print(result)

'알고리즘' 카테고리의 다른 글

알고리즘 4  (0) 2021.12.16
알고리즘 3  (0) 2021.12.15
알고리즘 1  (0) 2021.12.14