본문 바로가기

알고리즘/FreeCodeCamp20

[자바스크립트/알고리즘] DNA 페어링 DNA Pairing이란? DNA 가닥에 페어링 요소가 없다면 각 문자를 가져와서 쌍을 만들고 배열로 반환한다. 즉, 누락된 요소를 제공된 문자와 일치시킨다. 기본 쌍(Base Pairs)은 AT와 CG의 쌍이다. 예시 GCG는 [["G", "C"], ["C","G"],["G", "C"]] 를 반환한다. ATCGA는 [["A","T"],["T","A"],["C","G"],["G","C"],["A","T"]] 를 반환한다. 나의 풀이 function pairElement(str) { let answer = []; str.split("").map(e => { switch(e){ case 'G' : answer.push([e, 'C']); break; case 'C' : answer.push([e, 'G']).. 2021. 2. 1.
[자바스크립트/알고리즘] Pig Latin (정규식) 피그 라틴 어린이들의 말장난의 일종으로, boy를 oybay라 하는 것과 같이 맨 앞자음을 어미로 돌리고 그 뒤에 ay를 붙이는 것처럼 하는 말장난이다. 출처 : ko.wikipedia.org/wiki/%ED%94%BC%EA%B7%B8_%EB%9D%BC%ED%8B%B4 피그 라틴의 규칙은 이러하다. -단어가 모음으로 시작되면 끝에 'way'를 더한다. -단어가 자음으로 시작되면, 첫 번째 자음 또는 자음 군집(cluster)을 단어의 끝으로 이동한 후 "ay"를 추가한다. 예시 california -> aliforniacay bagel" = "agelbay" "fail" = "ailfay" "poo" = "oopay" algorithm -> algorithmay eight -> eightway 나의 풀이.. 2021. 2. 1.
[자바스크립트/알고리즘] 공백을 붙임표(하이픈)로 바꾸기 (정규식) 입력할 때 단어의 앞글자는 대문자로 시작, 나머지는 소문자. 출력은 모두 소문자로 변경되어야 함 입력: iLikeApples or 입력: i_Like_Apples (두 가지 입력 모두 출력 같음) 출력: i-like-apples function spinalCase(str) { return str.replace(/([a-z])([A-Z])/g, "$1 $2").toLowerCase().replace(/\s|_/g,"-"); } spinalCase("iLikeApples"); [코드 설명] str.replace(/([a-z])([A-Z])/g, "$1 $2") : 소문자 다음에 대문자가 오는 경우 그 사이(소문자와 대문자 사이)에 공백을 추가한다. .toLowerCase() : 소문자로 바꾼다. .repla.. 2021. 1. 19.
[자바스크립트/알고리즘] 특정 문자열로 끝나는지 확인 / 정규식, endsWith() 이용 문제 특정 문자열로 끝나면 true, 아니면 false 반환 나의 풀이 입력: "dogs, cats, and ducks", "ducks" 결과: true function confirmEnding(str, target) { let result = new RegExp(target+"$","i"); return result.test(str); } confirmEnding("dogs, cats, and ducks", "ducks"); 간단하게 endsWith()로 문제를 해결할 수도 있다. [endsWith()] 입력과 결과는 위와 동일하다. 사용방법 function confirmEnding(str, target) { return str.endsWith(target); } (문제 출처:www.freecodeca.. 2021. 1. 18.
[자바스크립트/알고리즘] 두 배열 중복 값 제거 (concat, filter) 입력: [1,2,3,5], [1,2,3,4,5] 출력: [4] OR 입력: [1, "cafe", 3, "apple"], [1, "cafe", 3, 4] 출력: ["apple", 4] function findUniqElem(arr1, arr2) { return arr1.concat(arr2) .filter(item => !arr1.includes(item) || !arr2.includes(item)); } findUniqElem([1, 2, 3, 5], [1, 2, 3, 4, 5]); arr1과 arr2를 합친다음 ( 예시에서는 [ 1, 2, 3, 5, 1, 2, 3, 4, 5 ] ) filter() 메소드를 이용하여 arr1이나 arr2에 포함되어 있지않은 수를 반환한다. 2021. 1. 17.
[자바스크립트/알고리즘] 알파벳순 정렬(sort 함수) 입력: ["x", "h", "a", "m", "n", "m"] 출력: ["a", "h", "m", "m", "n", "x"] function alphabeticalOrder(arr) { // Only change code below this line return arr.sort((a, b)=>{ return a === b? 0: a 2021. 1. 16.