당현히 시간도 2배로 늘어난다 그러니 시간을 단축시기키위해 좋은 알고리즘을 알아야한다!
input = [3, 5, 6, 1, 2, 4]
def find_max_num(array):
for num in array:
for compare_num in array:
if num < compare_num:
break
else:
return num
result = find_max_num(input)
print("정답 = 6 / 현재 풀이 값 = ", find_max_num([3, 5, 6, 1, 2, 4]))
print("정답 = 6 / 현재 풀이 값 = ", find_max_num([6, 6, 6]))
print("정답 = 1888 / 현재 풀이 값 = ", find_max_num([6, 9, 2, 7, 1888]))
이 함수가 시간이 얼마나 걸릴까 생각을 해보았는가?
사실 코드를 작성하면서도 이 코드들이 실행하는 시간을 분석하는 사람은 몇몇 없을꺼같다(나는 그렇다)
하지만 나는 좋은 개발자가 되고싶다. 그러면 좋은 코드를 적고 효율이 좋은 개발을 해야한다.
그럼 일단 이 코드들이 한줄식 실행되는것이 1번의 연산이라고 생각하자!
시간이 늘어나면 공간도 늘어나는건 당연하다.
시간 = 공간
똑같이 공간이 많이 안늘어나게 코딩하고 알고리즘을 짜는게 좋은 코딩이다!
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", "x", "y", "z"]
max_occurrence = 0
max_alphabet = alphabet_array[0]
for alphabet in alphabet_array:
occurrence = 0
for char in string:
if char == alphabet:
occurrence += 1
if occurrence > max_occurrence:
max_alphabet = alphabet
max_occurrence = occurrence
return max_alphabet
result = find_max_occurred_alphabet
print("정답 = a 현재 풀이 값 =", result("Hello my name is sparta"))
print("정답 = a 현재 풀이 값 =", result("Sparta coding club"))
print("정답 = s 현재 풀이 값 =", result("best of best sparta"))
이 해결 방법은 각 알파벳마다 문자열을 돌면서 몇 글자 나왔는지 확인!
그 보다 크면 값을 저장한뒤 가장 큰 알파벳을 저장!
- alphabet_array 의 길이 = 26
- max_occurrence, max_alphabet, occurrence 변수 = 3
이를 더해보면 = 29 라는 값 이나온다
사진은 직접 찍으신건가요? ㅎㅎ