문제
문자열이 주어질 떄 회문인지 판별하는 프로그램을 작성하시오
입력
문자열은 소문자로만 공백없이 들어옵니다.
예시
const test_case1 = 'racecar' // 'palindrome'
const test_case2 = 'boob' // 'palindrome'
const test_case3 = 'hello' // 'not palindrome'
풀이
function checkPalindrome(str) {
const lastLength = str.length - 1;
const _len =
str.length % 2 === 1 ? lastLength / 2 - 1 : parseInt(lastLength / 2);
let result = 'palindrome';
for (let i = 0; i <= _len; i++) {
if (str[i] !== str[lastLength - i]) {
result = 'not palindrome';
break;
}
}
return result;
}
문자열의 마지막 인덱스를 변수로 선언합니다.
회문을 판별하기 위해서 홀수일떄 짝수일때 나눠서 길이를 설정합니다. 왜냐하면 회문의 중간값을 중복 검사를 하지 않기 위해서 입니다.
결과값을 회문으로 설정 후 양쪽 값을 확인하면서 다른 경우 회문이 아닌걸로 하고 반복문을 중단하고 결과값을 반환합니다.
'코딩문제' 카테고리의 다른 글
대체된 문자열 길이 구하기 (0) | 2024.03.30 |
---|---|
가장 많이 등장하는 알파벳 찾기 (0) | 2024.03.30 |
다이아몬드 패턴 생성하기 (1) | 2024.03.29 |
초나라 장기 기물 정리하기 (0) | 2024.03.28 |
전화번호 키패드 누름 시간 계산 (0) | 2024.03.27 |