전체 글
-
[level1] - 최대공약수와 최소공배수(유클리드 호제법)programmers/level1 2020. 7. 24. 00:06
코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 문제 설명 : 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 입출력 예 : n m return 3 12 [3, 12] 2 5 [1, 10] 접근 방법 : 이 문제를 풀기 ..
-
[level1] - 평균 구하기programmers/level1 2020. 7. 21. 19:52
코딩테스트 연습 - 평균 구하기 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arr programmers.co.kr 문제 설명 : 정수를 담고 있는 배열 arr의 평균값을 return 하는 함수, solution을 완성해보세요. 입출력 예 arr return [1,2,3,4] 2.5 [5,5] 5 접근 방법 : 문제를 보면 배열의 모든 항목을 다 더해서 모든 항목의 수로 나눠서 평균을 구하는 문제이다. 정말 단순하게 반복문 돌려서 다 더한다음 배열의 길이로 나누면 되겠다 라는 생각을 했지만... 그 생각은 너무 일차..
-
자바스크립트 - 동기(Synchronous)? 비동기(asynchronous)?JavaScript/동작원리 2020. 7. 21. 15:33
들어가기 전에, 필자는 자바스크립트를 처음 접하고, 오로지 문법적인 것에만 집중해서 공부를 했었다. 하지만 개발할 때 더 중요한 것은 자바스크립트가 어떻게 동작하는지를 먼저 알고 개발을 시작해야 한다는 것이다. 안 그러면 왜 오류가 나는지도 모르고 이유를 모르니 해결할 방법을 찾을 수도 없게 되는 상황을 만나게 될 것이다. (저는 직접 겪었기 때문에...) 제목처럼 자바스크립트가 동기인지 비동기인지 그것을 먼저 알아야만 한다. JavaScript는 동기식 언어이다. 자바스크립트는 한 번에 하나의 작업을 수행한다. 한 작업이 실행되는 동안 다른 작업은 멈춘 상태를 유지하고 자신의 차례를 기다리는 것을 말한다. 마치 음식점에 여러 사람들과 갔을 때, 키오스크를 이용하여 한 사람씩 결제하는 것과 유사하다. 이..
-
자바스크립트 - 스코프 체인(scope chain)란?JavaScript/기본 2020. 7. 20. 20:01
스코프 체인(scope chain)이란? 스코프 체인(Scope Chain)은 일종의 리스트로서 전역 객체와 중첩된 함수의 스코프의 레퍼런스를 차례로 저장하고, 의미 그대로 각각의 스코프가 어떻게 연결(chain)되고 있는지 보여주는 것을 말한다. 하지만 스코프 체인(scope chain)을 이해하기 위해서 먼저 자바스크립트의 실행 컨텍스트(Execution context)를 알아야 한다. 그렇다면 실행 컨텍스트란 무엇인가? 실행 컨텍스트(Execution context)는 우리가 작성한 코드가 실행되는 환경을 말하며, scope, hoisting, this, function, closure 등의 동작원리를 담고 있는 자바스크립트의 핵심원리를 말한다. 그리고 이 실행 컨텍스트에는 두 개의 실행 컨텍스트가..
-
[level1] - 짝수와 홀수programmers/level1 2020. 7. 20. 13:06
코딩테스트 연습 - 짝수와 홀수 정수 num이 짝수일 경우 Even을 반환하고 홀수인 경우 Odd를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 Odd 4 Even programmers.co.kr 문제 설명 : 정수 num이 짝수일 경우 Even을 반환하고 홀수인 경우 Odd를 반환하는 함수, solution을 완성해주세요. 입출력 예 num return 3 Odd 4 Even 접근 방법 : 딱 문제를 보자마자 삼항 연산자를 통해 참과 거짓 이렇게 2가지 조건으로 반환 값을 true일 때 짝수 Even을 반환하고, false일 때 홀수 Odd를 반환하는 식으로 접근했다. num을 2로 나눴을 때, 0이면..
-
React - Virtual DOMReact/기본 2020. 7. 20. 00:25
Virtual DOM이란 무엇인가? 우선 Virtual DOM은 이름 그대로 가상의 DOM을 의미한다. 리액트의 주요 특징 중 하나이며, DOM을 빈번히 업데이트하는 것을 좀 더 효율적인 방법으로 업데이트하기 위해 만들어졌다. 그렇다면 DOM은 무엇인가? DOM은 Document Object Model의 약어이다. 웹 페이지가 화면에 로딩되면 브라우저는 페이지의 문서 객체 모델(DOM)을 만든다. 이 DOM을 더 간단히 설명하자면, 애플리케이션의 UI를 나타내며, HTML 파일의 JavaScript 표현을 말한다. 애플리케이션 UI 상태가 변경 될 때마다 DOM은 트리 형태이기 때문에 특정 노드를 찾거나 수정하거나 제거하거나 원하는 곳에 삽입도 가능하다. 왜 DOM에 바로 접근하는 대신 Virtual D..
-
자바스크립트 - 호이스팅(Hoisting)이란?JavaScript/기본 2020. 7. 19. 16:54
호이스팅(Hoisting)이란? scope(스코프) 안에서의 변수 선언을 최상위에서 선언한 것과 동등하다는 의미를 가진다. 즉, 변수가 선언되기 이전에 변수를 사용하면, 변수가 사용된 블럭 범위의 맨 위로 변수를 끌어올린다는 말이다. var x = '외부 scope'; function fnc() { console.log(x); // undefined var x = '내부 scope'; }; fnc(); 함수 fnc를 실행해보면, 콘솔 창에는 undefined가 출력이 된다. 왜 undefined가 출력이 될까? 그 이유는 var 키워드로 선언된 변수는 선언 단계와 초기화 단계가 한번에 이루어지는데, scope(스코프) 안에서 선언된 변수는 항상 최상위에 선언한 것과 동등한 의미를 가지기 때문에 즉, 호이..
-
[level1] - x만큼 간격이 있는 n개의 숫자도움말programmers/level1 2020. 7. 19. 12:58
코딩테스트 연습 - x만큼 간격이 있는 n개의 숫자 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. �� programmers.co.kr 문제 설명 : 함수 solution은 정수 x와 자연수 n을 입력받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 입력 및 출력 x n return 2 5 [2,4,6,8,10] 4 3 [4,8,12] -4 2 [-4, -8] 접근 방법 : 우선 n개를 지닌 리스트를 만들어야 하기 때문에, 배열..