타입 챌린지 27152 - Triangular number

소파의 벨로그·2025년 5월 29일

타입챌린지

목록 보기
98/131

문제 링크

문제

숫자 N이 주어지면, N번째 삼각수를 찾아라, 예) 1+2+3+...+N

Given a number N, find the Nth triangular number, i.e. 1 + 2 + 3 + ... + N

내 풀이

type TriangularImplement<N extends number,Result extends any[]=[],Cnt extends any[]=[]>=
  N extends Cnt['length']?[...Result,...Cnt]['length']:
    TriangularImplement<N,[...Result,...Cnt],[...Cnt,1]>
type Triangular<N extends number> = TriangularImplement<N>

우선 사용처에서 구현용 제네릭을 사용하지 못하게 하기 위해 구현과 실제 타입을 분리했다.

만약 종료조건이 아니라면 (Cnt의 값이 N이 아니면) Result에 Cnt를 넣는다.(result에 cnt를 더한다)

만약 종료조건이라면 (Cnt의 값이 N이라면), Result와 Cnt를 합친 값의 길이(result+cnt)를 반환한다

0개의 댓글