포시코딩

[프로그래머스][Lv.0] 순서쌍의 개수 본문

자료구조알고리즘/문제풀이

[프로그래머스][Lv.0] 순서쌍의 개수

포시 2022. 12. 28. 11:58
728x90

문제

https://school.programmers.co.kr/learn/courses/30/lessons/120836

 

프로그래머스

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

programmers.co.kr

 

내 풀이

def solution(n):
    answer = 0
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            answer += 1
    return answer*2-1 if int(n**0.5) == n**0.5 else answer*2

 

다른 풀이

def solution(n):
    answer = 0
    for i in range(1, n+1):
        if n % i == 0:
            answer += 1
    return answer

위 같은 다른 방법들은 1부터 n까지 하나하나 돌며 다 확인과정을 거치는데

내 방법은 n의 제곱근까지만 돌게하여 for문의 횟수를 현저하게 낮출 수 있다.

대신, 제곱근으로 딱 나눠지는 경우엔 짝이 존재하지 않아 리턴할 때 삼항연산자를 통해 -1을 해주는 과정을 거침

 

 

728x90