[프로그래머스] 기사단원의 무기

PyInsight·2024년 5월 31일

알고리즘 공부

목록 보기
38/42
post-thumbnail

💻첫번째 시도 테스트케이스(O),채점결과 100점

def solution(number, limit, power):
    answer = 0
    weapon = []
    for i in range(1,number+1):
        tmp = []
        for j in range(1,int(i**(1/2))+1):
            if i%j==0:
                tmp.append(j)
                tmp.append(i//j)
        tmp = len(set(tmp))
        if tmp > limit:
            weapon.append(power)
        else:
            weapon.append(tmp)
    answer = sum(weapon)
        
    return answer

소요시간 1시간

접근방식:number가 10만까지이기때문에 1부터 자기자신까지 탐색하는건 시간이 너무 오래걸림 그래서 제곱근까지만 탐색 후 다 append 한 뒤에 set으로 중복을 없앤 후 len으로 갯수를 찾고 limit와 대소비교

셀프 피드백:탐색문제 나올때 제곱근,제곱 생각해보기

profile
반갑습니다 알고리즘 공부 블로그입니다.

0개의 댓글