세용용용용 2024. 7. 17. 10:59

 

코딩테스트 연습 - 숫자 블록 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

나의 풀이

# 2024-07-17

# 자신을 제외한 가장 큰 약수 찾기
def append_value(number):
    answer=1
    if number==1:
        return 0
    for i in range(2, int(number**(1/2))+1):
        if number%i==0:
            answer=i
            if number//i<=10000000:
                answer=number//i
                break
    return answer

def solution(begin, end):
    answer = []
    for i in range(begin, end+1):
        answer.append(append_value(i))
    return answer

 

시간 복잡도

for i in range(begin, end+1) : 선형 시간 복잡도
     aksu함수 : 입력값에 따라 제곱근 시간 복잡도를 가짐 (i**(1/2)) 제곱근 시간복잡도

즉, 해당 알고리즘 시간복잡도는 선형시간과 * 제곱근 시간 복잡도를 혼합한 시간 복잡도 이다!!