반응형
Today I learned :
- toy 05, 06
bubbleSort() 구현하기 (Array.prototype.sort() 사용하지 않고)
: bubbleSort ([1,0,-3,10]) 하면 작은 순서대로 [-3, 0, 1, 10] 의 배열을 리턴하는 함수 구현하기
- 배열의 가장 작은 숫자를 찾는다.
- 가장 작은 숫자를 빈 배열 'result'에 담고, 배열 내의 그 숫자는 지운다.
- 남은 배열의 가장 작은 숫자를 찾는다.
- 가장 작은 숫자를 빈 배열에 담고, 배열 내의 그 숫자는 지운다.
- ...... 반복
- 배열이 빈배열이 되면 가장 작은 숫자들을 담아왔던 배열'result'를 리턴한다.
var bubbleSort = function(array) {
let result = [];
let recurse = function(arr) {
if (!arr.length) return result; //base : 배열 값이 0 이면 재귀 끝
if (arr.length) {
let findMin = arr => Math.min(...arr); //배열 내 최소값을 찾는 함수
let min = findMin(arr); //최소값 변수 담기
let idx = arr.indexOf(min); //최소값 인덱스 찾고 -> 배열에서 삭제
result.push(min);
arr.splice(idx, 1);
return arr.length === 0 ? result : recurse(arr);
}
};
recurse(array);
return result;
};
commonCharacters () 구현하기
: 인자로 주어진 string 들이 공통으로 가지고 있는 문자열 도출하기 (공백 및 중복 허용하지 않음)
e.g.) commonCharacters('moonk ey', 'mo onabc') 는 'mon'을 리턴해야 하는 함수
- 첫번째 parameter 의 문자 하나씩를 기준으로 다른 모든 argument에 해당 문자가 포함되는지 체크한다.
- 해당 문자가 포함되면 sum 에 +1 씩 가산한다
- 해당 문자가 모든 argument 를 다 돌고 체크가 되면 sum 이 argument 수와 일치하는지 체크한다.
- 해당 문자가 공백인지 체크한다.
- 해당 문자가 중복인지 체크한다.
- 모든 조건을 통과 하면 arr에 담는다.
- 우리가 원하는 건 배열이 아닌 하나로 연결된 문자열이기 때문에 모든 엘리먼트를 통합한 문자열을 리턴한다.
var commonCharacters = function(...arg) {
let arr = [];
for (let el of arg[0]) {
let sum = 0;
for (let ar of arg) {
ar.includes(el) ? sum++ : sum;
}
if (sum === arg.length && el !== " " && !arr.includes(el)) {
arr.push(el);
}
}
let result = arr.join("");
return result;
};
반응형
'2. 우당탕탕 개발자 > 2-1. 공부기록' 카테고리의 다른 글
28Dec2019 TIL (0) | 2019.12.29 |
---|---|
24Dec2019 TIL (0) | 2019.12.24 |
22Dec2019 TIL (0) | 2019.12.23 |
20Dec2019 TIL (0) | 2019.12.21 |
18Dec2019 TIL (0) | 2019.12.19 |
댓글