
프로그래머스 문제
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
n | return |
121 | 144 |
3 | -1 |
입출력 예#1
121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다.
입출력 예#2
3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다.
코틀린 정수 제곱근 판별 답
1)
import kotlin.math.*
class Solution {
fun solution(n: Long): Long {
var answer = sqrt(n.toDouble()).toLong()
if(answer*answer == n)
answer = return ((answer+1)*(answer+1)).toLong()
else return -1L
}
}
2)
class Solution {
fun solution(n: Long): Long {
for (i in 0..n) {
if (i * i == n) {
return ((i + 1) * (i + 1))
}
}
return -1
}
}
코틀린 풀이
1)
sqrt(n.toDouble()).toLong() 주어진 정수 n의 제곱근을 구하고, 이를 정수로 변환하여 answer에 저장합니다.
if (answer * answer == n)이 answer의 제곱이 입력된 정수 n과 같다면,
answer = return ((answer + 1) * (answer + 1)).toLong()로 (answer + 1)의 제곱을 구하고 그 값을 반환합니다.
그렇지 않은 경우, else return -1L: 만약 answer의 제곱이 n과 같지 않다면 -1을 반환합니다.
2)
for (i in 0..n)를 사용하여 0부터 n까지의 모든 정수에 대해 반복합니다.
if (i * i == n)는 현재 정수 i의 제곱이 입력된 정수 n과 같다면,
return ((i + 1) * (i + 1)).toLong(): (i + 1)의 제곱을 계산하고 그 값을 반환합니다.
만약 반복이 끝날 때까지 일치하는 제곱이 없다면, return -1: -1을 반환합니다.
sqrt?
- sqrt는 제곱근을 계산하는 수학 함수 중 하나입니다. "Square root"의 약어로, 어떤 수의 제곱근은 그 수를 제곱했을 때 원래의 수가 되는 값을 나타냅니다. 예를 들어, 9의 제곱근은 3이 됩니다.
'Kotlin Language > programmers' 카테고리의 다른 글
Kotlin - 두 정수 사이의 합 ( 22 ) (0) | 2023.12.07 |
---|---|
Kotlin - 하샤드 수 프로그래머스 코딩 연습 ( 21 ) (0) | 2023.12.07 |
Kotlin - 정수 내림차순으로 배치하기 코딩 연습 ( 20 ) (0) | 2023.12.07 |
Kotlin - 문자열을 정수로 바꾸기 프로그래머스 코딩 연습 ( 18 ) (0) | 2023.12.06 |
Kotlin - 자연수 뒤집어 배열로 만들기 프로그래머스 코딩 연습 ( 17 ) (0) | 2023.12.06 |
Kotlin - x만큼 간격이 있는 n개의 숫자 ( 16 ) (0) | 2023.12.05 |