728x90
📃문제설명
순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다.
자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.
📝제한사항
- 1 ≤ n ≤ 1,000,000
🪧입출력 예
n | result |
20 | 6 |
100 | 9 |
입출력 예 #1
- n이 20 이므로 곱이 20인 순서쌍은 (1, 20), (2, 10), (4, 5), (5, 4), (10, 2), (20, 1) 이므로 6을 return합니다.
입출력 예 #2
- n이 100 이므로 곱이 100인 순서쌍은 (1, 100), (2, 50), (4, 25), (5, 20), (10, 10), (20, 5), (25, 4), (50, 2), (100, 1) 이므로 9를 return합니다.
💻코드
import math
def solution(n):
answer = 0
sqrt_n = int(math.sqrt(n))
for x in range(1, sqrt_n + 1):
if n % x == 0:
answer += 2
if sqrt_n ** 2 == n:
answer -= 1
return answer
더보기
🧑💻공부
x와 n // x는 각각 약수 쌍을 이루게 된다.
제곱근이 정수인 경우 중복으로 계산된 약수 제거하면 중복이 없는 약수쌍 개수를 구할 수 있다.
import는 외부 모듈이나 패키지를 현재 코드로 가져오는 방법이다.
import문은 코드 맨 윗줄에 작성하면된다.
import 모듈이름
가장 기본적인 형태이다.
만약 math 모듈의 sqrt함수를 사용하려면
import math
result = math.sqrt(16)
print(result)
위와 같이 사용할 수 있다.
모듈을 import하고 별칭(alias)을 지정할 수도 있다.
이름을 짧게 만들어 사용할 수 있다.
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
모듈에서 특정 함수 또는 클래스만 import할 수도 있다.
이렇게 하면 모듈 이름을 사용하지 않고 바로 함수나 클래스를 사용할 수 있다.
from random import randint
number = randint(1, 10)
print(number)
마지막으로 모듈의 모든 기능을 import하고 싶을 떄는 다음과 같이 '*'를 사용할 수 있다.
이렇게 하면 모듈의 모든 기능르 현재 네임프스페이스로 가져오게 된다.
from 모듈이름 import *
하지만 이 방법은 모듈의 이름과 기능이 혼동될 수 있으므로 권장되지 않는다.
이상적으로는 어떤 모듈이 어떤 기능을 제공하는지 이해하고 import할 때 필요한 것만 가져오는 것이 좋다.
이렇게 해야 코드는 가독성이 향상되고 잠재적인 이름 충돌을 방지할 수 있다.
728x90
'🐍python3 > Programmers' 카테고리의 다른 글
프로그래머스[코딩테스트 입문]_모스부호 (1) (0) | 2023.06.03 |
---|---|
프로그래머스[코딩테스트 입문]_개미 군단 (0) | 2023.06.03 |
프로그래머스[코딩테스트 입문]_진료 순서 정하기 (0) | 2023.06.03 |
프로그래머스[코딩테스트 입문]_외계행성의 나이 (0) | 2023.06.03 |
프로그래머스[코딩테스트 입문]_배열 자르기 (0) | 2023.06.03 |