문제 설명
알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오.
팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다.
level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다.
입출력
input | result |
level | 1 |
baekjoon | 0 |
문제 풀이
const fs = require("fs");
let input = fs.readFileSync("./input.txt").toString().trim()
let answer = 1
for(let i = 0; i < Math.floor(input.length/2); i++){
if(input[i]!==input[input.length-1-i]){
answer = 0
}
}
console.log(answer)
문자열을 반으로 나눠 비교했을 때 뒤집은 값과 같으면 1, 아니면 0을 반환한다.
반복문을 문자열의 절반만큼 최댓값을 주되, 문자열의 길이가 홀수일 수 있어 내림해주었다.
기본값을 1로 설정하고, 문자열 앞부분과 뒷부분을(전체길이에서 앞부분의 길이를 빼서) 비교한다.
그리고 같지 않을 경우 answer을 0으로 바꾼다.
728x90
'개발 > 코딩테스트' 카테고리의 다른 글
[백준 | JavaScript] 4344 평균은 넘겠지 (0) | 2023.05.22 |
---|---|
[백준 | JavaScript] 1157 단어 공부 (0) | 2023.05.22 |
[백준 | JavaScript] 2908 상수 (0) | 2023.05.21 |
[프로그래머스 | JavaScript] 추억 점수 (풀이 2개) (0) | 2023.05.20 |
[프로그래머스 | JavaScript] 가장 가까운 같은 글자 (0) | 2023.05.20 |