[프로그래머스/Kotlin] 정수 제곱근 판별Algorithm/- Programmers2024. 2. 21. 22:40
Table of Contents
728x90
📑 문제 [ 더 보기 클릭! ]
🌱아이디어
Int형의 범위를 확인하자!
제곱근을 구하는 함수 sqrt를 잘 활용해 보자!
sqrt함수를 사용하기 위한 math를 꼭 import 하는 걸 잊지 말자!
🔍 코드 및 풀이
import kotlin.math.*
class Solution {
fun solution(n: Long): Long {
var answer: Long = 0
var sqrtNum = sqrt(n.toDouble()).toLong()
return if(sqrtNum * sqrtNum == n){
(sqrtNum + 1) * (sqrtNum + 1)
} else -1
}
}
제한사항에서 n이 Int 타입의 범위를 넘었기에 Long 타입으로 받고 반환해줘야 합니다.
sqrt함수는 인자를 Double 또는 float를 받습니다.
우선 양의정수 n을 Double로 변환한 후 sqrt함수를 이용하여 n의 제곱근을 구해줍니다.
그 후 다시 Long 타입으로 변환을 해줍니다.
마지막으로 조건문을 이용하여 n의 제곱근끼리 곱하였을 때 다시 n이 맞다면 n의 제고급인 sqrtNum변수에 1씩 더해주어 다시 곱하여 줍니다.
else -1도 잊지 않고 조건 충족을 해줍니다.
📗 느낀 점
sqrt함수와 Double을 같이 쓰는 것을 몰라 계속 풀리지 않았던 문제입니다.
알고 나니 sqrt 함수 자체가 읽기 쉽지 않아 오히려 기억에 제일 남는 math 함수인 것 같습니다.
반응형
'Algorithm > - Programmers' 카테고리의 다른 글
[프로그래머스/Kotlin] 하샤드 수 (1) | 2024.02.23 |
---|---|
[프로그래머스/Kotlin] 정수 내림차순으로 배치하기 (0) | 2024.02.22 |
[프로그래머스/Kotlin] 자연수 뒤집어 배열로 만들기 (0) | 2024.02.19 |
[프로그래머스/Kotlin] x만큼 간격이 있는 n개의 숫자 (2) | 2024.02.15 |
[프로그래머스/Kotlin] 나머지가 1이 되는 수 찾기 (0) | 2024.02.14 |
@주코딩dev :: 주코딩의 개발노트
주코딩의 개발 노트!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!