[알고리즘] 팰린드롬 판별하기

skh417·2020년 8월 27일
0
post-thumbnail

palindrome

팰린드롬이란 'eye', 'kayak', 'hannah' 처럼 거꾸로 읽어도 똑같은 문장이나 단어를 뜻한다.

지난 면접에서 간단한 알고리즘 문제를 받았는데
문자열을 받아서 팰린드롬이면 true를 반환하고 아니면 false를 반환하는 로직을 작성하는 문제였다.

  • reverse()를 사용 불가

처음에 바보같이 문자열을 .split()으로 배열을 만들었는데 그냥 문자열에 반복문을 사용하면 됐었다.😑
내가 생각해도 정말 괴상한 방법으로 풀려고 했는데 쉬운 문제를 너무 어렵게 생각한 듯 싶다.


아래 코드는 다시 직접 작성해본 코드

let textOne = 'korea';
let textTwo = 'kayak';
let textThr = 'hannah';

// 팰론드롬 판펼 함수
function getPalindrome(str){
  let half = Math.floor(str.length / 2); // 문자열의 중간까지만 반복될 수 있도록 변수지정
  
  for(let i = 0; i < half; i++){
    if(text[i] !== text[text.length-i-1]){
      // 앞 문자와 대칭되는 뒷 문자가 서로 일치하지 않는 경우 false 반환
      return false;
    }
  }
  return true;
}

getPailindrome(textOne); // false
getPailindrome(textTwo); // true
getPailindrome(textThr); // true
profile
프론트엔드 개발 공부중입니다.

관심 있을 만한 포스트

0개의 댓글