article thumbnail image
Published 2022. 6. 8. 14:05
회문 문자열
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다.
문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력
하는 프로그램을 작성하세요.
단 회문을 검사할 때 대소문자를 구분하지 않습니다.
▣ 입력설명
첫 줄에 정수 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다.
▣ 출력설명
첫 번째 줄에 회문 문자열인지의 결과를 YES 또는 NO로 출력합니다.
▣ 입력예제 1
gooG
▣ 출력예제 1
YES

문제를 이해해보자..

우선 회문 문자열은 앞으로 읽어도 뒤로 읽어도 같은 문자열이다.

대소문자를 구분하지않는다고 했으니, 대문자나 소문로로 변경하고, 문자열을 하나씩 쪼갠다음 뒤집에서 합쳐준다.

그다음 그문자열과 원래 받아온 인자s 를 비교하면 끝!

 

📌작성 코드

 
<html>

<head>
  <meta charset="UTF-8">
  <title>출력결과</title>
</head>

<body>
  <script>
    function solution(s) {
      let answer;
      let str;
      str = s.toUpperCase().split('').reverse().join('') //대문자로 바꿈
      if (s.toUpperCase() === str) {
        answer = 'YES'
      } else {
        answer = 'NO'
      }
      return answer;
    }
    let str = "gooG";
    console.log(solution(str));
  </script>
</body>

</html>
결과값을 저장할 answer 변수와 대소문자로 변경하고 쪼갠 문자열을 저장할 str 변수를 만들어주었다.

toUpperCase, split, reverse, join메소드를 사용하여, 

문자열을 대문자로 만들고 쪼개고 뒤집은 다음에 붙여준다.

그 값을 str에다가 저장한뒤 조건문을 사용하여 

s.toUpperCase() === str 를 비교해준다.

(s에 toUpperCase를 붙여준 이유는? str 문자열에는 GOOG가 들어있고, 

s에는 gooG가 들어있기때문에 s에 toUpperCase를 붙여 GOOG로 만들어야한다.)

참이면 yes 거짓이면 no를 적어주면 결과값이 잘 출력된다.

'알고리즘' 카테고리의 다른 글

[알고리즘 문제] 3-3번  (0) 2022.06.10
[알고리즘 문제] 3-2번  (0) 2022.06.08
[알고리즘 문제] 2-6번  (0) 2022.06.07
[알고리즘 문제] 2-5번  (0) 2022.06.04
[알고리즘 문제] 2-4번  (0) 2022.06.02
복사했습니다!