퇴사 후 조금 쉬었다. 하지만 쉬다보니 계속 쉬고 싶어지는 그래도 체력도 많이 안좋았는데 요즘은 수영을 다녀서 그런지 피곤함이 많이 사라졌다.
펠린드롬, 거꾸로 읽어도 똑같은 문장이나 단어를 뜻한다.
문자열이 입력 되면 해당 문자열이 펠린드롬이면, YES 아니면 NO를 출력하는 프로그램을 작성하면 되는 문제이다.
회문 을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않는다.
const solve = (str) => {
str = str.toLowerCase().replace(/[^a-z]/g,'');
if (str.split('').reverse().join('') !== str) return 'NO'
return 'YES'
}
solve('pizza1, edit: study; Yduts; tide, 1azzip')
간단하게 풀어봤다. 여기서 핵심은
문자열이 들어왔을때, split 과 join 의 개념과,
reverse() 를 사용하기 위해 배열로 만들어준 후(split),
다시 join 메서드를 이용하여 문자열로 반환 해준 것.
그리고 정규식 표현이 짚고 넘어가면 좋을듯 하다.
replace(/[^a-z]/g)
여기서 꺽새(^) 는 부정을 뜻한다, 즉 a-z 알파벳 제외하고 나머지를 2번째 인자인 '' 빈 문자열로 만든다는 뜻이다 그리고 마지막
g 는 전역을 뜻한다.
간단하게 요구사항에 맞춰서 알파뱃만 남긴 후, 뒤집어서 같은지 아닌지를 판별하는 간단한 문제였다.