타입 챌린지 27958 - CheckRepeatedTuple

소파의 벨로그·2025년 6월 1일

타입챌린지

목록 보기
101/131

문제 링크

문제

T에서 중복되는 멤버를 포함하는지를 반환할 CheckRepeatedChars<T>를 구현하라

Implement type CheckRepeatedChars<T> which will return whether type T contains duplicated member

내 풀이

type Includes<T,Arr extends any[]>=
  Arr extends [infer Start,...infer Rest]?
    Equal<T,Start> extends true?true
    :Includes<T,Rest>
  :false



type CheckRepeatedTuple<T extends unknown[]> = 
  T extends [infer Start,...infer Rest]?
    Includes<Start,Rest> extends true?true
    :CheckRepeatedTuple<Rest>
  :false

이전에 했던 Includes를 이용해 문제를 해결했다.

배열을 순회하며 자신보다 뒤에 있는 배열에 자신이 Includes 되어있으면, 바로 true를 반환한다.
마지막까지 순회했는데 Includes된 적이 없다면 false를 반환한다.

0개의 댓글