앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 함
해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력
대소문자를 구분하지 않음
나의 풀이
function solution(s) {
let answer = "YES";
let string = s.toUpperCase();
let length = string.length;
for (let i = 0; i < Math.floor(length / 2); i++) {
if (string[i] !== string[length - i - 1]) answer = "NO";
}
return answer;
}
let str = "goooG";
console.log(solution(str));
처음엔 for문 조건을 i < length로 했었는데, 그러면 불필요한 코드 실행이 발생하므로 반으로 나누어줬다.
강사 풀이
function solution2(s) {
let answer = "YES";
let string = s.toUpperCase();
if (string.split("").reverse().join("") !== string) answer = "NO";
return answer;
}
let str = "goooG";
console.log(solution2(str));
reverse는 배열의 메서드여서 배열에서만 사용 가능하다
만든 문자 배열을 뒤집고 다시 문자열로 만들어 비교를 한다
'코딩테스트 문제풀이 > inflearn' 카테고리의 다른 글
[인프런] Node.js / 섹션3 - 문자열 탐색 / 3. 숫자만 추출 (0) | 2023.01.14 |
---|---|
[인프런] Node.js / 섹션3 - 문자열 탐색 / 2. 유효한 팰린드롬 (0) | 2023.01.12 |
[인프런] Node.js / 섹션2 - 1, 2차원 탐색 / 7. 봉우리 (0) | 2023.01.10 |
[인프런] Node.js / 섹션2 - 1, 2차원 탐색 / 6. 격자판 최대합 (0) | 2023.01.09 |
[인프런] Node.js / 섹션2 - 1, 2차원 탐색 / 5. 등수구하기 (0) | 2023.01.08 |