코딩테스트 문제풀이/inflearn

[인프런] Node.js / 섹션3 - 문자열 탐색 / 1. 회문 문자열

sangchu 2023. 1. 12. 00:00

앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 함

해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력

대소문자를 구분하지 않음

 

나의 풀이

function solution(s) {
  let answer = "YES";
  let string = s.toUpperCase();
  let length = string.length;
  for (let i = 0; i < Math.floor(length / 2); i++) {
    if (string[i] !== string[length - i - 1]) answer = "NO";
  }
  return answer;
}

let str = "goooG";
console.log(solution(str));

처음엔 for문 조건을 i < length로 했었는데, 그러면 불필요한 코드 실행이 발생하므로 반으로 나누어줬다.

 

강사 풀이

function solution2(s) {
  let answer = "YES";
  let string = s.toUpperCase();

  if (string.split("").reverse().join("") !== string) answer = "NO";

  return answer;
}

let str = "goooG";
console.log(solution2(str));

 reverse는 배열의 메서드여서 배열에서만 사용 가능하다

만든 문자 배열을 뒤집고 다시 문자열로 만들어 비교를 한다