❓유효한 팰린드롬(회문 문자열)을 검사하시오
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 합니다.
문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램을 작성하세요.
단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않습니다. 알파벳 이외의 문자들의 무시합니다.
▣ 입력설명
첫 줄에 정수 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다.
▣ 출력설명
첫 번째 줄에 팰린드롬인지의 결과를 YES 또는 NO로 출력합니다.
▣ 입력예제 1
found7, time: study; Yduts; emit, 7Dnuof
▣ 출력예제 1 YES
💡 문제 풀이
function solution(s) {
let answer = "YES";
// a-z의 소문자가 아닌것(^)들을 찾는 정규식
s = s.toLowerCase().replace(/[^a-z]/g, '');
if (s.split('').reverse().join('') !== s) return "NO"
return answer;
}
let str = "found7, time: study; Yduts; emit, 7Dnuof";
console.log(solution(str));
1. 받은 문자열을 모두 소문자로 전환(toLowerCase()) 후 정규식을 이용해서 소문자가 아닌 것을 다 없애준다
replace(/[^a-z]/g, '') [a-z]가 a부터 z까지 범위를 표현하는데 ^ 이 녀석을 넣어 아닌것들을 찾아내 ''으로 여백을 없애준다.
2. 받은 문자열을 한 글자씩 나누어 배열로 설정(split('')) 후 reverse를 시키고 배열을 문자열로 다시 만들어준다(join('')) 그 값이 입력받은 문자열과 다르면 NO를 출력, 맞으면 YES 출력
'Front-End > Algorithm' 카테고리의 다른 글
[알고리즘] 가장 짧은 문자거리 구하기 (0) | 2021.05.22 |
---|---|
[알고리즘] 숫자만 추출하기 (0) | 2021.05.20 |
[알고리즘] 회문 문자열 (0) | 2021.05.18 |
[알고리즘] flag변수를 이용한 봉우리 개수 구하기 (0) | 2021.05.18 |
[알고리즘]격자판 최대합 구하기 (0) | 2021.05.14 |
댓글