인프런 커뮤니티 질문&답변

woo님의 프로필 이미지
woo

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

2. 팰린드롬

안녕하세요 선생님 질문이 있어서 글을 남기게 되었습니다.

작성

·

139

0

        function solution(b){
            
            let answer;

            b=b.toLowerCase().replace(/[^a-z]/g,"" )
            console.log(b);
            for(let i=0; i<Math.floor(b.length/2);i++){
                if(b[i]===b[b.length-i-1]){
                 
                    answer ="YES";
                
                }else{
                
                    answer="No";
                }

            }
             
            return answer;
           
            
        }
        
        let str="found7, time: study; Yduts; emit, 7Dnuof";
       console.log(solution(str)); 
        

위와 같은 코드에서 answer값을 처음에 빈값으로 선언하고 if문에서 조건의 참인경우에 answer값을 지정해주면  함수 인수의 값으로 사용한 문자열 알파벳 철자를 수정하였을 경우 "YES"로만 화면에 출력이 되는데 이유를 혹시 알수 있을 까요? 

답변 1

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

if(b[i]===b[b.length-i-1])

위에 조건이 비교하는 모든 쌍이 참일 때 YES를 하는 것입니다. 위 조건이 한 번이라도 거짓이되어 else 쪽으로 가면 그것은 팰린드롬이 아닌것입니다. 

woo님의 프로필 이미지
woo

작성한 질문수

질문하기