본문 바로가기

알고리즘70

[자바스크립트/알고리즘] 프리코드캠프(FCC) - Drop it : 함수가 true일 때 까지 요소 제거 (shift) 문제 배열이 주어지면 첫 번째 요소(0 인덱스)에서 시작하여 함수가 true로 돌아올 때까지 각 요소를 반복하고 제거합니다. 그런 다음 조건이 충족되면 나머지 배열을 반환합니다. 그렇지 않으면 arr을 빈 배열로 반환해야 합니다. 예시 dropElements([1, 2, 3, 4], function(n) {return n >= 3;}) [3, 4] dropElements([0, 1, 0, 1], function(n) {return n === 1;}) [1, 0, 1] dropElements([1, 2, 3], function(n) {return n > 0;}) [1, 2, 3] dropElements([1, 2, 3, 4], function(n) {return n > 5;}) [] 여기서 주의해야 할 점.. 2021. 2. 2.
[자바스크립트/알고리즘] 배열 여러개를 합친 후 유일한 값 반환하기 (set 객체, flat 함수) 문제 둘 이상의 배열이 제공되고, 원래 제공된 배열의 순서대로 중복이 없는 새로운 배열을 반환하라. 나의 풀이 Set 객체와 flat() 함수를 이용하여 정말 간단하게 코드를 짤 수 있다. function uniteUnique(...arr) { return [...new Set(arr.flat())]; } uniteUnique([1, 3, 2], [5, 2, 1, 4], [2, 1]); //실행코드 flat()으로 중첩된 배열을 하나로 합친 뒤 Set 객체로 중복된 값을 제거해 주었다. 중복된 값 제거에는 Set 객체를 사용하면 정말 편하다!! flat() 함수에 관한 포스트다. [자바스크립트] flat() 함수-중첩된 배열 구조 하나로 합치기 정의 flat() 메서드는 모든 하위 배열 요소를 지정한 깊.. 2021. 2. 1.
[자바스크립트/알고리즘] 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.
[자바스크립트/알고리즘] 프로그래머스-직사각형 별찍기 문제 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 사항 n과 m은 각각 1000 이하인 자연수입니다. //주어진 부분 process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const n = data.split(" "); const a = Number(n[0]), b = Number(n[1]); // let str = ""; for(let i = 0; i < b; i++){ str += "*".repeat(a) + "\n"; } console.log(str); }); repeat() 메소드를 이용하여 *를 a번 반복하여.. 2021. 1. 28.
[자바스크립트/알고리즘] 프로그래머스- H-index 문제 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다. 논문별 인용 횟수는 0회 이상 10,000회 이하입니다. 문제를 보고 처음 든 생각은 이게 무슨 .. 2021. 1. 26.