반응형
프로그래머스 약수의 개수와 덧셈을 파이썬으로 풀어보겠다.
2022.08.17 - [Coding Test/JavaScript] - [프로그래머스] 약수의 개수와 덧셈 JavaScript Code
2022.08.17 - [Coding Test/C++] - [프로그래머스] 약수의 개수와 덧셈 C++ Code
2022.08.17 - [Coding Test/Go] - [프로그래머스] 약수의 개수와 덧셈 Go Code
다른 언어 풀이는 위 링크를 참고하길 바란다.
문제
구현
range를 이용해서 left부터 right까지 돌며
약수의 개수가 홀수인 경우는 완전 제곱수이기 때문에
제곱수를 판별한 후
해당 숫자를 정답에서 빼거나 더한다.
코드
def solution(left, right):
answer = 0
for num in range(left,right+1):
if int(num**0.5)**2 == num:
answer -= num
else:
answer += num
return answer
완전제곱수를 판별한 방법은 위 코드와 같다.
루트를 취한 다음 int로 형 변환을 하고
그것을 제곱해서 num과 같아지는지 확인했다.
다른 풀이
이번 코드는 좋아요를 가장 많이 받은 풀이와 매우 비슷하다.
하지만 조금 더 변경된 로직이 보였다. (+숏 코딩)
def solution(left, right):
return sum(n if (n ** 0.5) % 1 else -n for n in range(left, right + 1))
이렇게 그 숫자를 1로 mod 연산하면 완전 제곱수 인지를 판별할 수 있다.
다음 포스트에는 C++로 풀어보겠다.
반응형
'Coding Test > Python' 카테고리의 다른 글
[프로그래머스] 2016년 Python Code (0) | 2022.08.20 |
---|---|
[프로그래머스] 성격 유형 검사하기 Python Code (0) | 2022.08.19 |
[프로그래머스] K번째수 Python Code (0) | 2022.08.16 |
[프로그래머스] 체육복 Python Code (2) | 2022.08.10 |
[프로그래머스] 예산 Python Code (0) | 2022.08.10 |
댓글