- 최대값 찾기 이해
def find_max_num(array):
max_num = array[0]
for i in array:
if i > max_num:
max_num = i
return max_num
print("solutaion = 6 / result = ", find_max_num([3, 5, 6, 1, 2, 4]))
print("solutaion = 6 / result = ", find_max_num([6, 6, 6]))
print("solutaion = 1888 / result = ", find_max_num([6, 9, 2, 7, 1888]))
- 최빈값 찾기 이해
def find_alphabet_occurrence_array(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_index = 0
for index in range(len(alphabet_occurrence_array)):
alphabet_occurrence = alphabet_occurrence_array[index]
if max_occurrence < alphabet_occurrence:
max_occurrence = alphabet_occurrence
max_index = index
return chr(max_index + ord('a'))
result = find_alphabet_occurrence_array
print("정답 = a 현재 풀이 값 =", result("Hello my name is sparta"))
print("정답 = a 현재 풀이 값 =", result("Sparta coding club"))
print("정답 = s 현재 풀이 값 =", result("best of best sparta"))
- 곱하기 또는 더하기 이해
def find_max_plus_or_multiply(array):
num = 0
for i in array:
if i <= 1 or num <= 1:
num += i
else:
num *= i
return num
result = find_max_plus_or_multiply
print("정답 = 728 현재 풀이 값 =", result([0,3,5,6,1,2,4]))
print("정답 = 8820 현재 풀이 값 =", result([3,2,1,5,9,7,4]))
print("정답 = 270 현재 풀이 값 =", result([1,1,1,3,3,2,5]))
- 최저 빈도 수의 알파벳
def find_not_repeating_first_character(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
not_repeat = []
for index in range(len(alphabet_occurrence_array)):
if alphabet_occurrence_array[index] == 1:
not_repeat.append(chr(index + ord('a')))
for char in string:
if char in not_repeat:
return char
return '_'
result = find_not_repeating_first_character
print("정답 = d 현재 풀이 값 =", result("abadabac"))
print("정답 = c 현재 풀이 값 =", result("aabbcddd"))
print("정답 =_ 현재 풀이 값 =", result("aaaaaaaa"))
- HW. 소수 나열하기
input = 20
def find_prime_list_under_number(number):
prime_num = []
for n in range(2, number + 1):
for i in prime_num:
if n % i == 0 and i * i <= n :
break
else:
prime_num.append(n)
return prime_num
result = find_prime_list_under_number(input)
print(result)
- HW. 문자열 뒤집기
input = "011110"
def find_count_to_turn_out_to_all_zero_or_all_one(string):
turn_zero = 0
turn_one = 0
if string[0] == '0':
turn_zero += 1
elif string[0] == '1':
turn_one += 1
for i in range(len(string) -1):
if string[i] != string[i + 1]:
if string[i + 1] == '0':
turn_zero += 1
if string[i + 1] == '1':
turn_one += 1
return min(turn_zero,turn_one)
result = find_count_to_turn_out_to_all_zero_or_all_one(input)
print(result)