728x90
결론적으로 제곱근이 양의 정수이면 제곱을 리턴하고, 정수가 아니면 -1 을 리턴하라는 소리인데..
너무 복잡하게 생각해서 sqrt(Double 혹은 Float ) 함수를 이용했다.
그 후 그 제곱근이 정수인지 확인하기위해 루트를 제곱한값이 정수와 같은지 확인하는 작업까지 해서
코드가 아래와 같아졌다.
생각이 너무 길어진거 같아서 다른 사람의 풀이를 보았는데
아주 간단한 코드를 봤다.
굳이 함수를 쓰지 않아도 단 몇줄에 완성된 코드이다.
class Solution {
fun solution(n: Long): Long {
for (i in 0..n) {
if (i * i == n) {
return ((i + 1) * (i + 1))
}
}
return -1
}
}
굉장히 깔끔하다.
코드를 설명해보자면 이런것인데
정수 0부터 n까지 수(i) 가 제곱했을때의 결과가 n과 같다면
제곱을 리턴한다는 말이다.
앞으로 코드를 줄이기위해 단순히 생각해야겠다.
728x90
'TIL > kotlin 알고리즘' 카테고리의 다른 글
프로그래머스 lv1 두 정수 사이의 합 (0) | 2024.01.25 |
---|---|
프로그래머스 lv1 두 정수 사이의 합 (0) | 2024.01.25 |
프로그래머스 lv1 정수 내림차순으로 배치하기 (0) | 2024.01.24 |
프로그래머스 lv1 자연수 뒤집어 배열로 만들기 (1) | 2024.01.24 |
프로그래머스 lv1 x만큼 간격이 있는 n개의 숫자 (1) | 2024.01.24 |