프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
제한사항
- n은 1이상, 50000000000000 이하인 양의 정수입니다.
입출력의 예
n | return |
121 | 144 |
3 | -1 |
🍀 Solution
def solution(n):
answer = 0
if n**(1/2) == int(n**(1/2)):
answer = (n**(1/2)+1) ** 2
else:
answer = -1
return answer
🐧 풀이
- n을 1/2 제곱한 것이 n을 1/2제곱한것을 정수로 변환한 것과 같다면, n이 어떤 양의 정수 x의 제곱근이라고 할 수 있다.
- 따라서 n이 어떤 양의 정수 x의 제곱근일 때, x+1의 제곱을 반환한다.
→ `answer = (n**(1/2)+1) **2` - 그렇지 않은 경우 -1을 반환한다.
- 따라서 n이 어떤 양의 정수 x의 제곱근일 때, x+1의 제곱을 반환한다.
🖨️ 결과
'⌨️ Code Taka > Python' 카테고리의 다른 글
[프로그래머스] 하샤드 수 (0) | 2024.05.30 |
---|---|
[프로그래머스] 정수 내림차순으로 배치하기 (0) | 2024.05.12 |
[프로그래머스] 문자열을 정수로 바꾸기 (0) | 2024.05.12 |
[프로그래머스] 자연수 뒤집어 배열로 만들기 (0) | 2024.05.12 |
[프로그래머스] x만큼 간격이 있는 n개의 숫자 (0) | 2024.05.12 |