-
[알고리즘/자바스크립트] 재귀를 이용한 배열 요소 개수 구하기 (Array Deep Count)Algorithm 2019. 6. 7. 23:56
-해당 문제는 codewars사이트의 level6 문제입니다. (1~8단계 중 8단계가 가장 쉬운 레벨)- [문제] Array.prototype.length will give you the number of top-level elements in an array. Your task is to create a function deepCount that returns the number of ALL elements within an array, including any within inner-level arrays. deepCount([1, 2, 3]); //>>>>> 3 deepCount(["x", "y", ["z"]]); //>>>>> 4 deepCount([1, 2, [3, 4, [5]]]); //>>..
-
[JS/Array] slice()와 splice()의 차이점Frontend 2019. 6. 7. 21:00
slice()와 splice()는 배열을 다룰 때 자주 사용하는 함수이다. 두 함수는 언뜻 보기에 비슷한 기능을 하는 것처럼 보이지만 큰 차이점이 있다. [1] Array.prototype.slice() slice() 메소드는 begin부터 end 전까지의 복사본을 새로운 배열 객체로 반환한다. 즉, 원본 배열은 수정되지 않는다. slice(start[, end]) start: 추출 시작점에 대한 인덱스. undefined인 경우: 0부터 slice 음수를 지정한 경우: 배열의 끝에서부터의 길이를 나타낸다. slice(-2)를 하면 배열의 마지막 2개의 요소를 추출한다. 배열의 길이와 같거나 큰 수를 지정한 경우: 빈 배열을 반환한다. end: 추출을 종료할 기준 인덱스. (end를 제외하고 그 전까..
-
[JS/Recursion] 자바스크립트, 재귀함수에 대하여 (Recursion)Frontend 2019. 6. 5. 19:32
재귀再歸 (Recursion) 프로그래밍에서 재귀(Recursion)란 자신을 정의할 때 자기 자신을 재참조하는 것을 말한다. 따라서 재귀 함수란 함수가 호출되어 실행할 때, 함수 내부에서 자기 자신을 다시 호출하는 재귀 호출(Recursive call)의 형태를 말한다. Recursive vs Iterative 보통 Recursive와 Iterative가 많이 비교되곤 한다. Iterative는 '반복적인'이란 뜻을 가지고 있다. 즉, 우리가 흔히 사용하는 for문이나 forEach문과 같은 반복 연산을 가리킨다. 항상 그런 것은 아니지만 많은 경우에 Recursion으로 처리할 수 있는 문제는 Iterator로도 처리할 수 있고, 반대로 Iterator로 처리할 수 있는 것은 Recursion으로 처..
-
[JS/DOM] 자바스크립트, 문서 객체 모델(Document Object Model)에 대하여Frontend 2019. 6. 3. 12:33
문서 객체 모델은 영어로 "Document Object Model"이라고 하고 줄여서 DOM(돔)이라고 부른다. DOM이란 웹 문서의 모든 요소를 자바스크립트를 이용하여 조작할 수 있도록 객체를 사용하여 문서를 해석하는 방법을 말한다. 이게 무슨 말인가 하면 우리가 텍스트 에디터로 웹 문서를 작성하여 브라우저로 실행시키면 이 웹 문서를 브라우저가 이해할 수 있는 구조로 메모리에 적재해야 한다. 즉, 웹 문서의 모든 Element와 Attribute, Text들을 브라우저가 이해할 수 있도록 각각 객체로 만들고 이 객체들의 관계를 트리 구조로 구성한 것이 DOM이다. 웹 문서 자체를 가리키는 DOM 요소 중 하나인 document를 한 번 콘솔 창에 입력해보자. 콘솔에 출력되는 값을 펼쳐보면 웹 문서의 구..
-
[JS] 자바스크립트, 생성자함수(Constructor function)와 프로토타입 체인(Prototype chain)Frontend 2019. 5. 31. 19:57
오늘은 지난번 수업 시간에 배운 생성자 함수와 프로토타입 체인에 대해서 정리해보려고 한다. 생성자 함수 (The Constructor Function) 생성자 함수란 쉽게 말해서 new 키워드와 함께 쓰이는 함수이다. 우리가 직접 함수를 정의하여 new 키워드로 생성자 함수를 만들어 사용할 수도 있지만, 자바스크립트에 기본적으로 내장된 생성자 함수를 사용할 수도 있다. new Array(); new Object(); new Function(); 바로 이 3가지이다. 생성자 함수는 특이하게 함수의 이름이 모두 대문자로 시작한다. 그래서 우리가 생성자 함수를 직접 정의해서 쓸 때에도 관례적으로 함수 이름의 첫 글자를 대문자로 쓴다. var arr = []; var arr = new Array(); 이 두 코..
-
[JS/Slider] 바닐라 자바스크립트로 무한 루프 슬라이드(Carousel) 구현하기Frontend 2019. 5. 31. 15:21
무한 루프 슬라이드 오늘은 자바스크립트로 구현해 본 무한루프 슬라이드를 정리해보려고 한다. 예전에 제이쿼리를 사용해서 슬라이드를 구현해본 적은 있지만 마지막 슬라이드에서 첫번째 슬라이드로 자연스럽게 옆으로 넘기는 이벤트는 구현하지 못했었다. 이번엔 제이쿼리 사용없이 순수하게 바닐라 자바스크립트로 무한루프 기능과 페이지네이션 기능까지 만들어보려고 한다. 1 2 3 4 5 Prev Next 먼저 HTML코드는 이렇다. div.slide_content 안에는 원하는 img태그를 추가하면 되는데, 이미지 추가하기가 귀찮아서 슬라이드 각각의 배경색만 다르게 하여 만들 생각이다. 페이지네이션은 일단 동적으로 추가할 예정이라서 ul 태그만 만들어두었다. 이제 css를 작성해야 하는 데, 일단 슬라이드가 움직이는 원리..
-
[JS/this] 자바스크립트, this의 4가지 역할Frontend 2019. 5. 30. 22:33
Javascript, This. 자바스크립트에는 this라는 키워드가 있다. this는 문맥에 따라서 다양한 값을 가지는 데, this가 쓰이는 함수를 어떤 방식으로 실행하느냐에 따라서 그 역할이 구별된다. this의 값들은 크게 4가지 정도로 나눌 수 있다. 즉, this를 이용하는 함수를 4가지 방식 중에서 어떤 방식으로 실행하느냐에 따라 this의 값이 결정된다는 뜻이다. 이러한 특성 때문에 this가 무엇을 지칭하는지 알기 위해서 우리는 this가 사용된 함수가 어디서 어떻게 실행되었는지를 찾아야만 한다. 1. 일반 함수 실행 방식 (Regular Function Call) 첫 번째로, 일반 함수 실행 방식으로 함수를 실행했을 때 this의 값은 Global Object를 가리킨다. 즉, 브라우저..
-
[알고리즘/C언어] 도형 알고리즘 / 사각형 ㄹ자 채우기 (정보처리기사, 실기)Algorithm 2019. 5. 24. 21:42
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 지난번에 배열을 정리하면서 사각형 모양으로 숫자를 출력하는 코드를 정리했었다. (단 주의해야할 것은 아래 코드는 0행 0열이 아닌 1행 1열부터 숫자를 채운 코드이다.) #include #define NUM 5 int main() { int row, col, i, j, k = 0; int arr1[NUM + 1][NUM + 1] = { 0 }; //사각형 도형 채우기 printf("-----------------------\n"); for (row = 1; row