회문 문자열
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다.
문자열이 입력되면 해당 문자열이 회문 문자열이면 "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 |