구현
카드 배열을 반복합니다.
현재 카드 배열의 인덱스가
정답배열을 filter와 sort를 이용해 0을 제거해주고 숫자가 큰 순서로 정렬해줍니다.
정답배열의 길이가 1보다 크다면 정렬된 배열 0번과 1번을 곱한 뒤 반환하고, 아니라면 0을 반환합니다.
const solution = (cards) => {
const answer = [];
cards.forEach((v, i) => {
let idx = i;
let count = 0;
while (true) {
if (cards[idx]) {
const temp = cards[idx];
cards[idx] = 0;
idx = temp - 1;
count++;
} else {
answer.push(count);
break;
}
}
});
const sortAnswer = answer.filter((v) => v != 0).sort((a, b) => b - a);
return sortAnswer.length > 1 ? sortAnswer[0] * sortAnswer[1] : 0;
};