알쿼리즘: 완전제곱수를 이용한 약수의 개수 판별
2024. 7. 15. 09:03ㆍ전처리/PYTHON
01 수박 반복하는 방법의 차이
def solution(n):
return ''.join(['수' if i%2!=0 else '박' for i in range(1, n+1)])
def solution(n):
return ('수박' * n)[:n]
- 전자는 글자의 위치가 짝수인지 홀수인지에 따라 '수'와 '박'을 구분하고 join()으로 붙여준다.
- 후자는 주어지는 수만큼 반복시키고 문자열 슬라이딩을 통해 간단하게 출력시켰다.
02 약수를 구하는 공식의 차이
def solution(left, right):
result=[]
for i in range(left,right+1):
num=[e for e in range(1,i+1) if i%e==0]
if len(num)%2==0:
result.append(i)
else:
result.append(-i)
return sum(result)
def solution(left, right):
return sum(i if len([e for e in range(1, i + 1) if i % e == 0]) % 2 == 0 else -i for i in range(left,right+1))
def solution(left, right):
return sum(-i if int(i ** 0.5) ** 2 == i else i for i in range(left, right + 1))
- 전자는 <약수>를 모두 구해 짝홀수를 판별한 다음 음양을 붙여 sum 집계함수로 합계를 구했다.
- 후자는 <완전 제곱수>를 이용해 판별했다. 제곱근X제곱근 즉, 동일 수를 곱해서 원래의 숫자가 될 경우 약수는 하나만 나오니까 홀수되는 점을 이용했다.
'전처리 > PYTHON' 카테고리의 다른 글
알쿼리즘: 파이썬 코드훈련 28, 29, 30번 (0) | 2024.07.09 |
---|---|
알쿼리즘: 파이썬 코드훈련 25, 26, 27번 (0) | 2024.07.05 |
알쿼리즘: 파이썬 코드훈련 22, 23, 24번 (0) | 2024.07.02 |
알쿼리즘: 파이썬 코드훈련 19, 20, 21번 (0) | 2024.07.01 |
문자열을 거꾸로 만드는 슬라이드 표기법 (0) | 2024.06.24 |