[javascript / 알고리즘] 문자열의 모든 경우의 수 가져오기
- 프로그래밍 이론/알고리즘
- 2020. 10. 5. 17:25
해당 포스팅은 제가 사용하려고 만든 포스팅이므로 자세한 설명은 생략합니다. 만약 이해가 안될 시 댓글을 남겨주시면 답변드리겠습니다.
알고리즘을 풀다보면 배열의 경우의 수가 필요한 경우가 존재합니다.
Python 같은 경우는
내장라이브러리인 itertools에 Permutation같은 함수가 있어서
꽤 쉽게 구해지지만
Javascript 같은 경우는 따로 내장 라이브러리가 없어서
실제 구현해야합니다.
그래서 아래와 같이 만들게 되었습니다.
(더 좋은 방법이 있을거 같긴 한데... 내 머리로선 이게 한계인듯 하다...)
실행 함수
function getNumbeOfCases(numbers) {
// 중복을 막기 위해서
const result = new Set();
// 재귀 함수를 통해 만든다.
const temp = (currFix, eachArr) => {
for (let i = 0; i < eachArr.length; i++) {
const tempEachArr = [...eachArr];
const tempCurrFixVal = tempEachArr.splice(i, 1)[0];
const tempCurrFix = currFix + tempCurrFixVal;
result.add(Number(tempCurrFix));
if (tempEachArr.length > 0) temp(tempCurrFix, tempEachArr);
}
};
// 시작
for (let i = 0; i < numbers.length; i++) {
let target = numbers[i];
result.add(Number(target));
const eachArr = [...numbers];
eachArr.splice(i, 1);
temp(target, eachArr);
}
return new Array(...result);
}
사용
console.log(getNumbeOfCases(["0", "1", "2"]));
'프로그래밍 이론 > 알고리즘' 카테고리의 다른 글
[javascript / 알고리즘] 소수 판별 알고리즘 (0) | 2020.10.05 |
---|---|
[프로그래머스][Javascript] 멀쩡한 사각형 (1) | 2020.06.10 |
[프로그래머스][Javascript] 기능개발 (0) | 2020.06.09 |
이 글을 공유하기