가장 긴 팰린드롬

RingKim1·2024년 5월 31일

algorithm

목록 보기
11/18
post-thumbnail

팰린드롬이라고 하면 모르는 사람이 많을 것이다.

하지만 아래 영상을 보면 바로 감이 잡힌다.
👉팰린드롬? 맛보러 가기

“똑바로 읽어도 거꾸로 읽어도..."
기러기, 토마토, 스위스, 인도인, 별똥별, 우영우, ... 역삼역?

우영우가 팰린드롬이 타임어택으로 나오다니 반가웠다.


가장 긴 팰린드롬

해결과정

// 조건식 추가
// 팰린드롬이 맞는지 확인하고 맞으면 해당 단어를 담을 배열 선언
// words를 순회하면서 팰린드 롬인지 확인하고 맞으면 push
// 배열이 비어 있으면 "" 리턴
// 배열 내 가장 큰 길이를 가진 단어를 리턴
function findLongestPalindrome(words) {
  const reg = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/gi;
  const filterWords = words.map((el) =>
    el.replace(reg, "").toLowerCase().split(" ").join("")
  );

  const palWords = [];

  for (let i = 0; i < filterWords.length; i++) {
    let reverseWord = [];
    for (let j = filterWords[i].length - 1; j >= 0; j--) {
      reverseWord.push(filterWords[i][j]);
    }
    if (filterWords[i] === reverseWord.join("")) {
      palWords.push(words[i]);
    }
  }

  if (palWords.length === 0) {
    return "";
  }

  let longWord = "";
  for (let i = 0; i < palWords.length; i++) {
    if (longWord.length <= palWords[i].length) {
      longWord = palWords[i];
    }
  }
  return longWord;
}
profile
커피는 콜드브루

0개의 댓글