JavaScript 코딩테스트 정수 제곱근 판별 (19일)

n이라는 숫자에 대해서
제곱근인지 확인해보는 수식이랑
확인 후 제곱이라면 x+1제곱 리턴이고, 아니면 -1리턴이니까
if랑 for가 필요할 것이라고 인지했다.
다만 제곱과 관련된 인덱스는 잘 몰라서 GPT에게 물어봤다.
Math.pow : 주어진 base와 지수의 값을 계산하여 반환합니다.
if에다가 if else?까지 쓰려했는데 그냥 break로 끝내고 나와도 괜찮을 것 같아서 break를 썼다.
function solution(n) {
let answer = -1;
for (let i = 1; i < n; i++) {
if (Math.pow (i,2) === n) {
answer = Math.pow (n+1,2);
break;
}
}
return answer;
}

for문에서 실행문장이 잘못된 것 같아서 확인 중이다.
answer = Math.pow (n+1,2);
n+1에다가 제곱을 해서 숫자가 커진 듯 하다.
for문에서 찾은 i+1에 제곱을 해야 맞는 숫자가 나올꺼라 수정했다.
function solution(n) {
let answer = -1; // answer 기본값을 -1로 할당
for (let i = 1; i < n; i++) {
if (Math.pow (i,2) === n) {
answer = Math.pow (i+1,2);
break;
}
}
return answer;
}


채점해보니 18번만 틀려서, 어떤 문제인가 하고 [질문하기] 들어가서 찾아보니 n = 1 이라는 입력값인 것 같았다.
for (let i = 0; i <= n; i++)
1은 1의 제곱이니까 해당되고, 4를 내보내줘야 하는데
for 조건식에서 i<n로 기입했기에 1<1이 성사되지 않아서 실패가 난 듯 했다.
i<=n로 수정하여 1도 포함될 수 있게 바꾸었다.

for문 기본 틀은 좀 적응한 것 같은데 if if else else 요게 아직 조금 헷갈리는 느낌