-
[programmers/Swift] 정수 제곱근 판별Archive/Questions 2022. 5. 2. 17:48728x90
programmers.co.kr - 코딩테스트연습 - Lv.1 - 연습문제 - 정수 제곱근 판별
Constraints :
- n은 1이상, 50000000000000 이하인 양의 정수입니다.
// // Created by Yongwoo Marco on 2022/04/26. // Copyright © 2022 Yongwoo Marco Kim. All rights reserved. // func solution(_ n:Int64) -> Int64 { let num = Int64(sqrt(Double(n))) return num * num == n ? (num + 1) * (num + 1) : -1 } print(solution(121)) // 144 print(solution(3)) // -1
How I tried this :
처음 생각한 아이디어가 형변환도 많고 생각치 못한 에러도 있어서 당황했지만제곱근의 정수부만 제곱해서 n과 같다면 제곱근이 정수라는 의미로 풀었다.
What I got is :
func solution(_ n:Int64) -> Int64 { let sqrt = sqrt(Double(n)) return sqrt == Double(Int(sqrt)) ? Int64(pow(sqrt + 1, 2)) : -1 } // Swift Error: Variable used within its own initial value
최초 풀이에서 변수명을 키워드와 동일하게 했다가 에러가 났었고
형변환이 너무 많아서 현재 코드로 변형했다.
문제에 관한 모든 저작권 : https://programmers.co.kr/
728x90'Archive > Questions' 카테고리의 다른 글
[programmers/Swift] 문자열 내 마음대로 정렬하기 (0) 2022.05.03 [programmers/Swift] 두 정수 사이의 합 (0) 2022.05.02 [programmers/Swift] 문자열 내 p와 y의 개수 (0) 2022.05.02 [programmers/Swift] 제일 작은 수 제거하기 (0) 2022.05.01 [programmers/Swift] 문자열 내림차순으로 배치하기 (0) 2022.05.01