cording test

LV.1 기사단원의 무기

JM Lee 2023. 5. 7. 13:12
728x90

코딩테스트 연습 - 기사단원의 무기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr

레벨 1이라기엔 풀어야 할 코드가 꽤나 많아서 시간이 다소 걸렸고,

인자들의 범위가 넓었기 때문에 시간복잡도 역시 신경써야 하는 문제다.

 

인자가 리스트값이었기 때문에 리스트를 사용해서 접근했다.

 

제곱근이 겹친 채 list_에 들어가기 때문에 set함수를 통해 중복되는 집합 없애기

 

limit을 넘을 경우/넘지 않을 경우로 나누어서 for문 설정

def cd(n): # 약수 출력
    list_ = []
    for i in range(1,int(n**0.5)+1): # 범위 설정(제곱근까지만 구해서 복잡도 감소)
        if n%i == 0: # 약수 조건이 될 시
            list_.append(n//i) 
            list_.append(i) # 약수들을 a 리스트에 첨부
    return len(set(list_)) # 중복되는 수를 제거한 후 길이 반환
def solution(number, limit, power):
    total = 0
    for a in range(1, number+1):
        if cd(a) <= limit:
            total += cd(a)
        else:
            total += power
    return total

'cording test' 카테고리의 다른 글

Lv.1 신규 아이디 추천  (0) 2023.05.17
LV.2 영어 끝말잇기  (0) 2023.05.07
LV.0 다음에 올 숫자  (0) 2023.05.07
LV.2 괄호 회전하기  (0) 2023.05.07
LV.1 예산  (0) 2023.05.07