트랙
/
Clojure
Clojure
/
연습 문제
/
부분 배열
부분 배열

부분 배열

보통

지침

임의의 두 배열 A와 B가 주어졌을 때, 다음 중 어느 것인지 확인해요:

  • 배열 A가 배열 B와 같거나
  • 배열 A가 배열 B를 포함하거나 (A는 B의 슈퍼리스트예요)
  • 배열 A가 배열 B에 포함되거나 (A는 B의 서브리스트예요)
  • 위 어느 것도 아니어서 배열 A와 B가 같지 않아요

구체적으로, 두 배열이 같은 순서로 같은 값을 가지고 있으면 배열 A는 배열 B와 같아요. A가 B와 값이 같은 연속된 부분 수열을 포함하고 있으면 A는 B의 슈퍼리스트예요. B가 A와 값이 같은 연속된 부분 수열을 포함하고 있으면 A는 B의 서브리스트예요.

예시:

  • A = []이고 B = []인 경우(두 배열 모두 비어 있어요), A와 B는 같아요
  • A = [1, 2, 3]이고 B = []인 경우, A는 B의 슈퍼리스트예요
  • A = []이고 B = [1, 2, 3]인 경우, A는 B의 서브리스트예요
  • A = [1, 2, 3]이고 B = [1, 2, 3, 4, 5]인 경우, A는 B의 서브리스트예요
  • A = [3, 4, 5]이고 B = [1, 2, 3, 4, 5]인 경우, A는 B의 서브리스트예요
  • A = [3, 4]이고 B = [1, 2, 3, 4, 5]인 경우, A는 B의 서브리스트예요
  • A = [1, 2, 3]이고 B = [1, 2, 3]인 경우, A와 B는 같아요
  • A = [1, 2, 3, 4, 5]이고 B = [2, 3, 4]인 경우, A는 B의 슈퍼리스트예요
  • A = [1, 2, 4]이고 B = [1, 2, 3, 4, 5]인 경우, A와 B는 같지 않아요
  • A = [1, 2, 3]이고 B = [1, 3, 2]인 경우, A와 B는 같지 않아요

부록

Note

위 지침은 모든 언어 트랙에서 일관성을 유지할 수 있도록 공유 저장소와 동기화되어 있어요. 이 부록은 Clojure 트랙의 목표에 더 잘 맞도록 필요할 때 추가 설명을 덧붙이거나 지침을 수정해요.

Clojure 트랙의 이 연습 문제에서는 테스트에서 알 수 있듯이 입력이 벡터라고 가정해도 돼요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Clojure Exercism

부분 배열 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Clojure 트랙을 개념 12개연습 문제 105개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.