1. 문제 설명 (📎Link)
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
2. 제한사항
n은 1이상, 50000000000000 이하인 양의 정수입니다.
📝 문제
func solution(_ n:Int64) -> Int64 {
return 0
}
💻 내가 푼 방법(테스트 성공)
func solution(_ n:Int64) -> Int64 {
//x는 양의정수이므로 1로 변수 선언
var x = 1
//x의 제곱이 n보다 작을 때 까지 x를 1씩 증가
while x * x < n {
x += 1 }
//삼항연산자 활용 -> x의 제곱이 n이면 x+1의 제곱 반환, 아닐 경우 -1 반환
//들어오는 양의 정수 n은 Int 값이므로 Int64와 구분할 것
//반환되는 값은 Int64로
return Int(n) == x * x ? Int64((x + 1) * (x + 1)) : Int64(-1)
}
🔎 의문점과 공부한 것
1. 삼항 연산자의 활용
A?B:C → A면 B를 반환한다. 아닐 경우 C를 반환한다.
2. Int64가 문제로 주어질 경우 다른 문제들과 동일하게 형변환에 신경써줄 것!
'🍎 Swift > Programmers' 카테고리의 다른 글
[👾 Programmers] 21. 하샤드 수 (0) | 2024.06.26 |
---|---|
[👾 Programmers] 20. 정수 내림차순으로 배치하기(업데이트 필요) (0) | 2024.06.24 |
[👾 Programmers] 18. 문자열 정수로 바꾸기 (0) | 2024.06.23 |
[👾 Programmers] 17. 자연수 뒤집어 배열로 만들기 (0) | 2024.06.21 |
[👾 Programmers] 16. x만큼 간격이 있는 n개의 숫자 (0) | 2024.06.21 |