출처 : 프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12934
난이도: Lv.1
문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
제한 사항
- n은 1이상, 5000000000000 이하인 양의 정수입니다
입출력 예
n | return |
121 | 144 |
3 | -1 |
1. 첫 번째 시도 (성공)
import Foundation
func solution(_ n:Int64) -> Int64 {
let x = Int64(sqrt(Double(n)))
var sum: Int64 = (x+1) * (x+1)
// 만약 1 4 9 16 25 36 49 64 81 100 121 이면이잖아
// = x * x인거고?
if x * x == n {
return sum
}else{
return -1
}
}
비교적 쉬운 문제였다.
'Programmers' 카테고리의 다른 글
[iOS Swift] Lv.1 하샤드 수 (0) | 2024.05.13 |
---|---|
[iOS Swift] Lv.1 정수 내림차순으로 배치하기 (0) | 2024.05.12 |
[iOS Swift] Lv.1 문자열을 정수로 바꾸기 (0) | 2024.05.10 |
[iOS Swift] Lv.1 자연수 뒤집어 배열로 만들기 (0) | 2024.05.10 |
[iOS Swift] Lv.1 x만큼 간격이 있는 n개의 숫자 (0) | 2024.05.09 |