-
[Day 40] 알고리즘- 몸풀기 & 스택TIL/멋쟁이사자처럼 FE스쿨 2기 2022. 5. 26. 23:00SMALL
기다리고 기다리던 알고리즘 수업..
아직 배열 메소드들이 익숙하지 않아 더욱 어려웠던 것 같다..
메소드 많이 써보면서 연습하기...!
//빈 배열 만들기 Array(10) //0으로 채우기 Array(10).fill(0) //1부터 100까지의 배열 Array(100).fill(1).map((value,index)=>value+index) //1부터 100까지 숫자 중 8이 몇 개? (Array(100).fill(1).map((value,index)=>value+index)+'').split('8').length-1
// https://codingdojang.com/scode/408?langby=javascript#answer-filter-area // 1차원의 점들이 주어졌을 때, 그 중 가장 거리가 짧은 것의 쌍을 출력하는 함수를 작성하시오. (단 점들의 배열은 모두 정렬되어있다고 가정한다.) // 예를들어 S={1, 3, 4, 8, 13, 17, 20} 이 주어졌다면, 결과값은 (3, 4)가 될 것이다. let arr=[] //빈 배열 생성 for (let i=0;i<s.length;i++{ arr.push(s[i]-s[i-1]) } //근접한 값끼리 빼서 arr에 추가 let index = arr.indexOf(Math.min(...arr)) //arr 최솟값의 인덱스 console.log(s[index],s[index+1] //또 다른 풀이 const zip = (a, b) => a.map((v, i)=>[v, b[i]]); let pairs = zip(s.slice(0, s.length - 1), s.slice(1)) //페어로 자름 //s의 요소전체 배열과 첫번째 요소를 뺀 배열 let init = pairs[0][1] - pairs[0][0] //초기값 설정 let result; for (let i of pairs){ if (init >i[1]-i[0]){ init = i[1]-i[0] result =i } }
스택 구조
class Stack{ constructor(){ this.arr=[]; this.length=0; } push(data){ this.arr.push(data) this.length+=1 } pop(index) { if (index>this.arr.length-1){ this.length-=1; return this.arr.pop() } let result = this.arr.splice(index, 1) this.length-=1 return result } top() { return this.arr[this.arr.length-1] } bottom(){ return this.arr[0] } display(){ return this.arr } }
반응형'TIL > 멋쟁이사자처럼 FE스쿨 2기' 카테고리의 다른 글
Firebase v9로 이메일 로그인, 회원가입 기능 구현하기 (0) 2022.07.04 [Day 35] JS 클로저 활용 & Class (0) 2022.05.18 [Day 34] JS 객체지향프로그래밍; 생성자함수, 프로토타입, 객체 상속 (0) 2022.05.17 [Day 33] JS 로 만드는 3D 캐러셀 (0) 2022.05.17 [Day 31] JS DOM & 이벤트 (0) 2022.05.12