알고리즘

백준 JS | 재귀의 귀재

2022. 12. 29. 22:40
목차
  1. ✅ Solution
출처 : 백준 온라인 저지 - 25501번: 재귀의 귀재

✅ Solution

const input = require('fs').readFileSync('dev/stdin').toString().trim().split('\n');
input.shift();
let answer = '';

// 1. 주어진 문자열이 팰린드롬인지 확인하기 위한 isPalindrome 함수 생성
function isPalindrome(str, cur, cnt) {
  // 1-1. 팰린드롬 여부를 확인하기 위해서는 index의 역순에 위치한 문자열과 비교해야 하므로
  // 결과적으로 문자열의 절반까지만 확인을 하면 된다. => length 변수는 재귀함수를 실행될 마지막 index
  // 문자열이 홀수이면 중간에 숫자가 하나 비기 때문에 Math.floor 사용하여 소수점 버림
  const length = Math.floor(str.length / 2);
  if(cur >= length) {
    return answer += '1' + ' ' + cnt + '\n'
  } else {
    if(str[cur] === str[str.length - cur - 1]) isPalindrome(str, cur+1, cnt+1)
    else return answer += '0' + ' ' + cnt + '\n'
  }
}              

// 2. 주어진 입력 값 문자열을 순차적으로 isPalindrome 함수의 인자로 넣어서 팰린드롬 여부 판단
input.forEach(el => isPalindrome(el, 0, 1));
              
// 3. 2번 코드에서 팰린드롬 여부에 따른 결과값을 answer 변수에 string 형태로 추가했으므로 console로 출력
console.log(answer);

 

 난이도가 높은 문제는 아니지만 그동안 재귀 관련한 문제가 나와도 재귀로 해결풀지 못하고 반복문을 사용하여 억지로 풀어냈었는데, 처음으로 재귀를 활용하여 풀어내서 뿌듯했다. 

 하지만 블로그를 작성하면서 보니 선린인터넷고 2022년 알고리즘 경시대회 A번 문제인 것을 보니 다른 사람들에겐 훨씬 더 간단한 수준의 문제인 듯... 그래도 이전의 나보다 조금이나마 나아졌으니 DFS, BFS 도 이렇게 차근차근 익혀나갈 것이다.

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

백준 JS | 1004번: 어린왕자  (0) 2023.01.25
프로그래머스 JS | 인사고과  (0) 2023.01.20
백준 JS | 좌표 압축  (0) 2022.12.26
프로그래머스 JS | 다리를 지나는 트럭  (0) 2022.11.12
프로그래머스 JS | 소수찾기(완전탐색)  (0) 2022.11.06
  1. ✅ Solution
'알고리즘' 카테고리의 다른 글
  • 백준 JS | 1004번: 어린왕자
  • 프로그래머스 JS | 인사고과
  • 백준 JS | 좌표 압축
  • 프로그래머스 JS | 다리를 지나는 트럭
3jun
3jun
3jun
3jun
3jun
전체
오늘
어제
  • 분류 전체보기 (94)
    • 프로젝트 (5)
    • Web (9)
    • JavaScript (19)
    • React (12)
    • 알고리즘 (31)
    • Git (3)
    • AWS (3)
    • TypeScript (3)
    • CS (2)
    • Error (6)
    • 회고 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준 알고리즘
  • 프로그래머스 코테
  • 프로그래머스 코딩테스트
  • 프로그래머스 코딩테스트 js
  • 백준 코테
  • outer environment
  • JavaScript
  • state
  • msw
  • 유효성 로직
  • airbnb style guide
  • msw 에러
  • this.props.history.push
  • Promise
  • react
  • 프로그래머스 js
  • 자바스크립트
  • 백준 js
  • 백준js
  • 백준 온라인저지

최근 댓글

최근 글

hELLO · Designed By 정상우.
3jun
백준 JS | 재귀의 귀재
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.