728x90
문제)
www.codewars.com/kata/53f40dff5f9d31b813000774/train/javascript
Codewars: Achieve mastery through challenge
Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential.
www.codewars.com
내가 푼 답)
var recoverSecret = function(triplets) {
let dedupTriplet = [];
triplets.forEach(triplet => dedupTriplet = [...triplet, ...dedupTriplet]);
dedupTriplet = Array.from(new Set(dedupTriplet));
checkPosition(triplets, dedupTriplet);
return dedupTriplet.join('');
}
function checkPosition(triplets, dedupTriplet) {
let flag = false;
let i = 1;
for (let tri of triplets) {
if (changePosition(dedupTriplet, tri[1], tri[2]) || changePosition(dedupTriplet, tri[0], tri[1])) {
flag = true;
}
if (flag && (i >= triplets.length)) {
checkPosition(triplets, dedupTriplet);
}
i += 1;
}
}
function changePosition(arr, a, b) {
let aIndex = arr.indexOf(a);
let bIndex = arr.indexOf(b);
if (aIndex > bIndex) {
arr.splice(aIndex, 1, b);
arr.splice(bIndex, 1, a);
return true;
}
}
소스를 좀 다듬긴 해야하겠는데,.
테스트 결과)
마음에 드는 다른 사람 소스)
넘사다..
728x90
'Algorithm > codewars' 카테고리의 다른 글
Number of trailing zeros of N! 답안 (0) | 2021.03.29 |
---|---|
Permutations 답안 (0) | 2021.03.29 |
Greed is Good 답안 (0) | 2021.03.24 |
Moving Zeros To The End 답안 (0) | 2021.03.24 |
Where my anagrams at? 답안 (0) | 2021.03.24 |