• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

54번 결과값이 모두 NO가 나옵니다.

20.04.21 15:51 작성 조회수 109

0

for(let i=0; i<=arr.length-1; i++){
if(arr[i] +1 !== arr[i + 1]){
console.log(arr[i] +1) //11
console.log(arr[i + 1]) //2
return 'NO'
}else{
return 'YES'
}
}
조건식 이 무조건 NO가 나오는것 같은데
초보라서 잘모르겠어요.확인 부탁드릴게요!

답변 1

답변을 작성해보세요.

0

Cho님의 프로필

Cho

2020.04.26

4일 전에 올리셨으니 스스로 해결하셨겠지만..

조금먼저 수강한 학생으로 아마도 arr가 int 형이 아니라 String형이라 그러지 않을까 추측해 봅니다. 

코드를 전체 올려주시면 더 확실하겠지만.... 

["1", "2", "3"] 배열이 문자열이면 arr(1)+1 = "11"이 나오고, arr(1+1) = "2"가 나옵니다.

즉, arr[i]+1 !== arr[i+1] 은 이조건은 무조건 true입니다. 그러니 return 을 No라고만 해 주겠죠.

배열의 값을 문자열에서 Int형으로 변환해 주시면 원하는 값이 나올겁니다. parseInt를 사용해 보세요. 

[1,2,3] Int형이면 arr(1)+1 = 2 ,  arr(1+1) = 2가 나옵니다. 

즐공하세요~