본문 바로가기

전체 글

(157)
n-queens 체스를 구현해라.. n x n 의 이차원 배월이 있다고 하자. arr[n][n] hasRowConflictAt 메소드의 역할 hasRowConflict는rowIndex값을 가지고 와서 그 행을 탐색하는 것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 hasRowConflictAt: function (rowIndex) { let arr = this.rows(); arr = arr[rowIndex];//특정인덱스가 있는 배열.. let count = 0; for(let i=0;i1){ return true; } } return false; // fixme }, Colored by Color Scripter cs hasAnyRowConflicts 모든 행의 값을 탐색하는것. 1 2 3 4 5 6 7 8 ..
알고리즘 토이 문제 4 피보나치함수를 구현하라.!! 피보나치.. 뭘까?... 처음 들어보는 사람도 있을 것이다... 피보나치 피보나치... 피보나치 수에 대한 것을 아래 링크를 참고하면 훨씬 도움이 될 것이다.. https://ko.wikipedia.org/wiki/%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98_%EC%88%98 피보나치 수 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 피보나치 수를 이용한 사각형 채우기 수학에서, 피보나치 수(영어: Fibonacci numbers)는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다. 처음 여섯 항은 각각 1, 1, 2, 3, 5, 8이다. 편의상 0번째 항을 0으로 두기도 한다. 피보나치 수가 처음 언급된 문헌은 기원전 5세기 인..
알고리즘 토이 문제 3번째 부분집합인지 아닌지 불린값 반환문제 isSubsetOF라는 함수가 있다. 두가지 예시를 들어본다. 예시 1) 1 2 3 var a = ['commit','push']라고 했을떄... a.isSubsetOF(['commit','rebase','push','blame']) // true cs 예시 2) 1 2 3 4 5 var b = ['merge','reset','reset'] b.isSubsetOf(['reset','merge','add','commit']) // true cs 집합의 종류엔 배열, 객체 ,숫자, 문자열이 있다. 이것들을 비교해서 있는지 확인할려면 어떤 방법이 좋을까? 정답은 ? (고민해보길 바란다) 힌트는 문자열이다. 더보기 JSON.stringify를 이용하면 된다. 확인할 배열에 모든 배열의 각 요소 값을 문자열로 바..
알고리즘 토이 문제 2. 중복되지 않는 문자를 반환하는 문제. firstNonRepeatedCharacter라는 함수가 있다. 그 함수의 input과 아웃풋은 다음과 같다.. firstNonRepeatedCharacter('ABA'); // => 'B' firstNonRepeatedCharacter('AACBDB'); // => 'C' 두번이상 나오는 문자를 제외한 하나의 문자를 반환한다. 만약에 한번만 나오는 문자가 있다면.. 맨 처음에 나온 문자를 반환한다. 필자는 이 문제를 두가지 방법으로 구현했다. 첫번쨰는 string을 하나의 문자가 담긴 배열구조로 만든다음에.. 그것을 sort시킨다음에 풀었다. 사실 이방법은 좀 오류가 있엇어야 됐을지도 모르겠다. 왜냐하면 한번만 나오는 문자가 있다면 맨 처음에 나온 문자가 호출인데 .. .sort시키면서 그 첫번쨰 문자..
알고리즘 토이 문제 1 풀기. 가위바위보 모든 경우의 수의 배열 구하기.. 가위바위보를 했을때 나올 수 있는 모든 경우의 수를 구해볼려고 한다. 예를들어 1을 입력하면 한명이서 3(가위,바위,보) 세가지 경우가 나오고 예를들어 2를 입력하면 두명이서 3 x 3 9가지 경우의 수가 나온다. n을 입력하면 n명이서 3^n승의 경우의 수가 나온다. 함수에 1을 입력하면 ['rock'],['scissors'],['paper'] 을 출력하고 함수에 2를 입력하면 ['rock','rock'] ,['rock','scissors'],['rock','paper],['scissors','rock'],['scissors','scissors'],['scissors','paper'],['paper','rock'],['paper','sissors'],['paper','paper'] 이걸 그림으로 표현해..
function vs ES5 vs ES6 비교.. Function Dancer 자식.. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 // Creates and returns a new dancer object that can step var makeDancer = (top, left, timeBetweenSteps) => { const dancer = {}; const createDancerElement = () => { let elDancer = document.createElement('span'); elDancer.className = 'dancer'; return elDancer; }; dancer.$node = createDanc..
ES6 vs pseudoclassical(ES5) 상속방법에 대한 비교.. ES5의 상속 방법.. (현재는 벌의 성장과정에 대해서 예시를 들어서 코드를 작성했다.) 1단계 : 애벌레 1 2 3 4 5 6 7 8 9 var Grub = function () { this.age = 0; this.color = "pink"; this.food = "jelly"; }; Grub.prototype.eat = function(){ } Colored by Color Scripter cs 애벌레의 나이는 0살 , 색깔은 핑크색, 음식은 jelly(로열젤리)를 먹는다. 먹는 것을 하기 떄문에 eat이라는 메소드를 가지고 있다. 2단계 : 성장중인 벌 1 2 3 4 5 6 7 8 9 10 11 12 13 14 var Bee = function () { Grub.call(this); this.ag..
[javascript] Order of Execution 문제 보호되어 있는 글입니다.