Codewars 이용자 솔루션 모음

Counting Duplicates - 앞 문자열과 마지막 문자열을 비교

link 배열에서 2번이상의 문자가 들어있는 문자의 수

@glalev, @ChungGor, @Pradeep Reddy, @larokey, @sahalatobing, @ellie-grace's Solution

function duplicateCount(text){
  return text.toLowerCase().split('').filter(function(val, i, arr){
    return arr.indexOf(val) !== i && arr.lastIndexOf(val) === i;
  }).length;
}

filter를 통해 2번이상 들어 있는 문자만의 배열을 새롭게 만드는데, arr.indexOf(val) !== iarr.lastIndexOf(val) === i;를 통해 맨 마지막 문자열과 앞의 문자열이 중복된게 있는지 체크 해준다.

DubstepDubstep - 특정글자 잘라내기

link WUB라는 글자가 나오면 삭제하고 나머지 글자 사이엔 하나의 공백만 넣는다.

@VictorArias, @Smoggy, @etselp, @Firedrake969, @Psycho, @cmac2992's Solution

function songDecoder(song){
  return song.split('WUB').filter(Boolean).join(' ');
}

split를 사용하여 'WUB'를 제거하는 효율적인 방법이 놀랍다. 또한 split 이후 filter로 배열의 원소가 "" 공백인 곳을 잡아준다. 매우 효율적으로만 구성된 코드다.

Rectangle into Squares - 정사각형의 개수 구하기

link 인자로 가로(a)와 세로값(b)을 받으며 가장 큰 정사각형부터 시작하여 총 몇개의 정사각형이 나올 수 있는지에 관한 문제이다. 같은 자리에 작은 정사각형은 세지 않는다.

@sulkowski's Solution

return을 본인으로 하여 재귀함수가 되지만 신선한건 재귀값들을 배열로 만들었다는 점이다.

a와 b가 같아질때까지 계속 재귀함수가 실행되고 return []안에는 min값이 계속쌓이고 마지막 a === b같아지는 순간에는 [a]가 리턴되는데 이 값은 ...으로 destructuring되어 맨처음 시작했던 함수에서 최종적으로 모든 min값이 return되는 정말 재밌고 신기한 구조쓰

Snail

link 인자로는 배열을 받는데 nxn 의 정사각형의 각각 숫자를 배열로 받는다. 배열안에 배열로 구성되어 있다.

@altrubypirate, @xiaright, @Unihedron, @YGYOOO, @link., @theyellowkang's Solution

result에 들어간 요소들은 처음받은 array에서 제거된다. 정확하게 정사각형이 도는 순환구조대로 짜져있으며 array는 계속 수정되므로 length가 없을때는 result가 return된다.

By 3, or not by 3

type이 string인 숫자를 인자로 받아 총합이 3으로 나뉘어 지는지에 대한 알고리즘

Voile's Solution

str을 split('')을 사용하지 않고 배열로 만든점이 신선하다. 또한 아직 문자열을 +d+s로 하여(순서를 바꿈) 숫자로 바꿔버림.

Sum of Digits / Digital Root

link 인자로 받은 숫자가 계속 더하여 한자리가 되면 리턴한다!

Balkoth, fidelius, FunGuy, rojohnmico, Mattordrag, Binayre 's Solution

헉 무조건 답이 나오는데 이유는 모르겠다. 헉

Once bubble sort

hencethus' solution

하나씩 살펴보자.

h < v보다 클경우. v = h가 되고 h = v가 된다.

return은 큰 값 h는 빼고 한다.

이부분에서 마지막 []은 왜하는지 모르겠다.

Last updated

Was this helpful?