반응형
반응형
1. 첫 번째 시도 처음 문제를 봤을 때 들었던 생각은 재귀를 이용한 완전탐색. const fs = require('fs'); const Data = fs.readFileSync('/dev/stdin').trim() .split("\\n").map(v => v.split(" ").map(Number)); const [N,K] = Data.shift() Data.sort((a,b)=>b[1] - a[1]) let answer = 0; function additem(bag,index,w,v) { if(index === N){ if(answer < v){ answer = v } return } const newbag = [...bag] additem([...newbag],index+1,w,v) const [W..
이 문제는 위의 이미지를 참고하면 이해하기가 쉽다. 알파벳이 같다면 대각선 왼쪽의 값에서 +1, 같지 않다면 위쪽, 왼쪽에서 큰 수를 가져온다. let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().trim().split("\\n") const A = input[0].split("") const B = input[1].split("") const DP = Array.from({length:B.length+1}, ()=>Array(A.length+1).fill(0)) let answer = 0; for(let i=0; i
어트리뷰트 노드와 attributes 프로퍼티 HTML요소는 여러 개의 어트리뷰트 속성을 가질 수 있다. 모든 어트리뷰트 노드의 참조는 유사 배열 객체이자 이터러블인 NamedNodeMap객체에 담겨져 요소 노도의 attributes 프로퍼티에 저장된다. Element.prototype.attributes 프로퍼티로 취득 할 수 있다. getter만 존재하는 읽기 전용 접근자 프로퍼티이며 NamedNodeMap 객체를 반환한다. HTMl 어트리뷰트 조작 Element.prototype.getAttrigute/setAttribute 메서드를 사용하여 요소노드에서 직접 HTML 어트리뷰트 값을 취득하거나 변경할 수 있다. 이외에 hasAttribute, removeAttribute도 가능. HTML 어트리뷰..
DOM 조작 새로운 노드를 생성하여 DOM에 추가, 혹은 기존 노드 삭제 또는 교체 하는 것으로, 리플로우와 리페인트가 발생한다. innerHTML 프로퍼티는 setter와 getter 모두 존재하는 프로퍼티로 HTML 문자열을 반환. 크로스 사이트 스크립팅(XSS) 공격에 취약하다. 때문에 HTML5를 지원하는 브라우저에서는 동작하지 않는다. 요소를 모두 제거하고 생성하기 때문에 효율적이지 못하다. insertAdjacentHTML innerHTML과 달리 기존 요소를 제거하지 않고 위치를 지정해 새로운 요소를 삽입한다. 첫번 째 인수로 전달할 수 있는 문자열은 아래 네가지다. const $foo = doucument.getElementById("foo") $foo.insertAdjacentHTMl("..
여러 아이콘을 사용할 수 있는 대표적인 서비스인 Font Awesome을 리액트에서 사용하는 법입니다. 1. Set Up with React 2. Add Icons with React Add Icons with React The internet's icon library + toolkit. Used by millions of designers, devs, & content creators. Open-source. Always free. Always awesome. fontawesome.com 자세한 내용은 위의 링크에서 확인할 수 있습니다. 저는 위 방법을 그대로 따라해 보겠습니다. npm i --save @fortawesome/fontawesome-svg-core npm i --save @fortawe..
첫번째 시도 시작시간을 기준으로 정렬을 한 다음, 늦은시간, 즉 뒤에서 부터 순회를 돌면서, 각각의 시간 뒤에 올 수 있는 시간표의 갯수를 나타내는 arr 배열을 만듦. const Data = `4 0 1 1 5 2 3 4 5` .trim() .split("\n").map(v => v.split(" ").map(Number)); const arr = Array(...Data.shift()).fill(1) Data.sort((a, b) => a[0] - b[0]); for (let i = arr.length - 1; i >= 0; i--) { for (let j = i+1; j < arr.length; j++) { if (Data[i][1] v.split(" ").map(Number)); Data.shif..