Recursive 30초 가이드

도움이 되셨다면 GitHub ⭐ 한번씩 부탁드립니다!
후원은 Java, C++ 등 더 많은 언어를 지원하는 데 큰 힘이 됩니다.

Tip 1. 알고리즘 풀이를 그대로 붙여넣어보세요

풀이 코드를 함수째로 그대로 붙여넣으면 돼요. 주석이 있어도 괜찮고, 매개변수는 자동으로 감지돼요. 입력 필드가 나타나면 원하는 값을 넣고 실행해보세요.

입력 예시

// 배열을 오름차순으로 정렬해서 리턴
//
// 풀이 전략
// 인접한 두 원소를 비교해서 큰 값을 뒤로 보낸다.
// 한 바퀴 돌 때마다 가장 큰 값이 맨 뒤에 확정된다.
// 시간복잡도: O(n^2)

function bubbleSort(arr) {
  const n = arr.length;
  for (let i = 0; i < n - 1; i++) {
    for (let j = 0; j < n - 1 - i; j++) {
      // 앞이 더 크면 교환
      if (arr[j] > arr[j + 1]) {
        const temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }
  return arr;
}

실행 화면

버튼을 눌러보면서 테스트해보세요. 실제 화면에서는 입력값을 수정할 수 있어요.

Tip 2. 함수 없이 그냥 코드를 넣어도 돼요

함수로 감싸지 않은 일반 코드도 그대로 실행돼요. 매개변수 입력 없이 바로 ▶ 실행을 누르면 됩니다.

const arr = [5, 3, 8, 1, 2];
let total = 0;
for (let i = 0; i < arr.length; i++) {
  total += arr[i];
}
console.log(total);

Tip 3. 블로그나 노션에 임베드할 수 있어요

블로그, Notion, Obsidian 등에 실행 화면을 임베드할 수 있어요. 실행 화면 상단의 Embed 버튼을 누르면 iframe 코드가 복사돼요. 높이도 조절할 수 있고, Notion에서는 /embed로 URL만 붙여넣을 수 있도록 제공해요.

<iframe src="https://recursive.oilater.com/embed?preset=bubble-sort"
  width="100%" height="600"
  style="border:none;border-radius:8px;" />

Tip 4. Python과 JavaScript를 지원해요

  • Python은 표준 라이브러리를 자유롭게 쓸 수 있어요 (collections, functools, itertools 등).
  • JavaScript / TypeScript는 타입이 자동으로 제거되고, Math, JSON, Array 메서드 등 내장 API도 그대로 쓸 수 있어요.

Tip 5. 현재 지원하지 않는 것들

  • 비동기 코드 (setTimeout, Promise, async/await)는 아직 지원하지 않아요.
  • JavaScript에서 class는 아직 지원하지 않아요.
  • Python은 표준 라이브러리만 사용할 수 있어요. numpy, pandas 같은 외부 패키지는 지원하지 않아요.
  • 너무 큰 입력값을 넣으면 실행이 중단될 수 있어요. 적당한 크기로 테스트해주세요.
  • Java, C, C++ 등은 브라우저에서 직접 실행할 수 없어서 별도 서버가 필요해요. 현재는 서버 없이 운영 중이라 아직 지원하지 않아요.
  • 여러 줄에 걸친 입력값(stdin 방식)은 현재 지원하지 않아요. 함수의 매개변수로 값을 전달하는 방식만 가능해요.

Tip 6. 피드백은 언제든 환영해요

기능 제안이나 이슈 제보는 언제나 환영해요. GitHub Issues에 남겨주세요. PR로 직접 기여하실 수도 있어요.

업데이트 로그

Issue 기반으로 기능을 개선하고 있어요. 전체 이슈 보기 →

  • 함수 호출을 스택 프레임으로 시각화
  • 재귀 호출 트리에서 마우스 드래그로 패닝 기능 추가
  • Python 지원 추가
  • 임베드 기능 추가 (블로그, Notion, Obsidian 등)
  • 다국어 지원 (한국어 / 영어)
  • 문서 페이지 추가