인프런 커뮤니티 질문&답변

wyswhsl21님의 프로필 이미지
wyswhsl21

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

2. 팰린드롬

팰린드롬 문제

작성

·

208

0

선생님 앞 강의에서 말씀 해 주신 s.length -i -1 로 풀고싶어서 아스키코드를 이용해봤는데 if 문을 열고 소문자 대문자 일 때만 돌게끔 범위를 설정해줬습니다.

이런 방법으로는 풀수없는걸까요 ? s[i] !== s[s.length -i -1] 일때는 'NO' 를 출력하게끔 했는데 맞는 문자열이 들어가도 'NO'를 출력하더라구요 ㅠㅠ

function solution(s) {
  let answer = 'YES';

  s = s.toLowerCase();
  for (let i = 0; i < Math.floor(s.length / 2); i++) {
    if (
      s[i].charCodeAt() >= 65 ||
      s[i].charCodeAt() <= 90 ||
      s[i].charCodeAt() >= 97 ||
      s[i].charCodeAt() <= 122
    ) {
      if (s[i] !== s[s.length - i - 1]) {
        return 'NO';
      }
    }
  }
  return answer;
}
console.log(solution('found7, time: study; Yduts; emit, 7DnuoF'));

답변 1

0

wyswhsl21님의 프로필 이미지
wyswhsl21
질문자

죄송합니다 제가 범위를 잘못 설정해서 계속 NO 가 출력 된거였습니다 .

```

 

function solution(s) {
  let answer = 'YES';

  s = s.toLowerCase();
  for (let i = 0; i < Math.floor(s.length / 2); i++) {
    if (
      (s[i].charCodeAt() >= 65 && s[i].charCodeAt() <= 90) ||
      (s[i].charCodeAt() >= 97 && s[i].charCodeAt() <= 122)
    ) {
      if (s[i] !== s[s.length - i - 1]) {
        return 'NO';
      }
    }
  }
  return answer;
}
console.log(solution('found7, time: study; Yduts; emit, 7Dnuod'));

```

이렇게 수정하니 잘 됩니다.

wyswhsl21님의 프로필 이미지
wyswhsl21

작성한 질문수

질문하기