본문 바로가기

내일배움캠프/Today I Learned

[내배캠] 나의 아홉번째 회고록

위험한 건 대충

 

오늘은 하루동안 알고리즘 기초가 되는 문제들을 풀었다. 

뇌를 구조적으로 세팅하려면 시간이 조금 걸릴 것 같다는 생각이 든다. 

혼자서 푼 문제들이긴 하지만 이번주에는 프로그래머스, 백준의 레벨 낮은 문제들을 반복적으로 풀어봐야겠다는 생각이다. 

 

#다음과 같은 숫자로 이루어진 배열이 있을때, 이 배열 내에 특정 숫자가 존재한다면 True,
#존재하지 않다면 False를 반환하시오.

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


def is_number_exist(number, array):
    for in_arr in array:
        if number==in_arr:
            return True
        else:
            return False

result = is_number_exist(7, input)
print(result)
#다음과 같이 숫자로 이루어진 배열이 있을 때, 이 배열 내에서 가장 큰 수를 반환하시오,

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


def find_max_num(array):
    num = array[0]
    max_num = 0

    for i in range(1, len(array)):

        if num < array[i]:
            max_num = array[i]
            num = array[i]
 
    return max_num


result = find_max_num(input)
print(result)
# 0혹은 양의 정수로만 이루어진 배열이 있을 때, 왼쪽부터 오른쪽으로 하나씩
# 모든 숫자를 확인하며 숫자 사이에 X혹은 + 연산자를 넣어 결과적으로 가장 큰수를 구하는 프로그램을 작성하시오
# 단 +보다 x를 먼저 계산하는 일반적인 방식과는 달리 모든 연산은 왼쪽에서 순서대로 이루어진다.

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


def find_max_plus_or_multiply(array):
    max_num = 0

    for number in array:
            if number <= 1 or max_num <= 1:
                max_num += number
            else:
                max_num *= number
    return max_num

result = find_max_plus_or_multiply(input)
print(result)