전체 글 90

서울에서 김서방 찾기 [indexOf()] 자바스크립트

문제 설명 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다  function solution(seoul) { var answer = seoul.indexOf("Kim"); return `김서방은 ${answer}에 있다`;}  indexOf는 자바스크립트 특정 배열 요소의 위치를 찾을 때 쓰인다.

알고리즘 2024.10.21

정수 제곱근 판별 [Math.sqrt(), Number.isInteger(), Math.pow(a,b)] (javascript)

문제 설명임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. n은 1이상, 50000000000000 이하인 양의 정수입니다.  function solution(n) { let sqrt = Math.sqrt(n); if(Number.isInteger(sqrt)) { return Math.pow(sqrt + 1, 2); } else { return -1; }}  let sqrt = Math.sqrt(n); Math.sqrt(n) 함수로 n의 제곱근을 구한다. if (Number.isIntege..

알고리즘 2024.10.18

정수 내림차순으로 배치하기 [sort, split, join] (javascript)

문제 설명 함수 solution은 정수 n을 매개변수로 입력받습니다.n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요.예를들어 n이 118372이면 873211을 리턴하면 됩니다. 제한조건n은 1이상 8000000000이하인 자연수입니다.   function solution(n) { var answer = 0; var arr = n.toString().split(''); arr.sort((a,b)=> b-a); answer = parseInt(arr.join(''), 10); return answer;}  var arr = n.toString().split(''); 숫자 n을 문자열로 변환한 뒤, split('')을 통해 각 자릿수를 배열로 분리  spl..

알고리즘 2024.10.17

7장 클래스

1. 클래스와 인스턴스의 개념 이해 자바스크립트는 프로토타입 기반 언어라서 '상속'의 개념이 존재하지 않습니다.ES6에서 클래스 문법이 추가되었는데 일정 부분 프로토타입을 활용하기 때문에 ES5의 클래스를 흉내내기 위한 구현방식을 학습해두어야 합니다.  음식은 과일보다 상위의 개념이고, 과일은 음식보다 하위의 개념입니다.이를 상위 클래스 (superclass)/하위 클래스 (subclass)로 표현합니다. 인스턴스란? 위의 예제처럼 감귤, 자몽, 천혜향처럼 클래스의 속성을 띠는 구체적인 개체를 인스턴스라고 합니다.쉽게 말하자면 어떤 조건에 부합하는 구체적인 예시라고 볼 수 있는데 여기서 조건을 클래스라고 본다면어떤 클래스에 속한 개체는 해당 클래스의 조건을 모두 만족하기 때문에 그 클래스의 구체적인 예시..

7장 클래스

1.클래스와 인스턴스의 개념 이해 음식, 과일은 모두 집단 즉 클래스이다.음식은 과일보다 상위의 개념이고, 과일은 음식보다 하위의 개념이다.여기서 앞의 super-,sub-를 접복해서 상위클래스, 하위클래스로 표현한다.그렇다면 과일 분류 하위에 또 다른 분류가 있을 경우 클래스간의 관계는 어떻게 될까? 음식은 과일의 superclass 이다.과일은 음식의 subclass 이면서 귤류의 superclass이다.귤류는 과일의 subclass이다.하위 개념은 상위 개념을 포함하면서 더 구체적인 개념이 추가된다. 클래스는 하위로 갈수록 상위 클래스의 속성을 상속하면서 더 구체적인 요건이 추가 또는 변경된다.물론 하위클래스가 아무리 구체화되더라도 이들은 결국 추상적인 개념일 뿐이다. 어떤 클래스의 속성을 지니는 ..

6장 프로토타입

자바스크립트는 프로토타입 기반 언어이다. 클래스 기반 언어에서는 '상속'을 사용하지만 프로토타입 기반 언어에서는 어떤 객체를 원형(prototype)으로 삼고 이를 복제(참조) 함으로써 상속과 비슷한 효과를 얻습니다.  프로토타입의 개념 이해 6-1-1 constructor, prototype, instance   이 그림만 이해하면 프로토타입은 끝이다. 이 그림으로부터 전체 구조를 파악할 수 있고,전체 구조로부터 이 그림을 도출해낼 수 있으면 된다. 위 그림은 다음 코드의 내용을 추상화한 것이다.var instance = new Constructor(); 이를 바탕으로 좀 더 구체적인 형태로 바꿔보면 다음과 같다. 위 그림의 윗변(실선)의 왼쪽 꼭짓점에는 Constructor(생성자 함수)를, 오른쪽 ..

5장 클로저 발표자료

클로저란?어떤 함수에서 선언한 변수를 참조하는 내부함수에서만 발생하는 현상>>함수를 만들고 그 함수 내부의 코드가 탐색하는 스코프를 함수 생성 당시의 Lexical 스코프로 고정하면 클로저가 된다. 예제를 통해 더 알아봅시다. function outerFunction() { let outerVariable = '나는 외부 변수야'; function innerFunction() { console.log(outerVariable); } return innerFunction;}const myClosure = outerFunction();myClosure(); // "나는 외부 변수야" 출력 'outerFunction'이라는 함수가 있습니다.'outerFunction' 안에는 ..

카테고리 없음 2024.07.21

5장 클로저

1. 클로저의 의미 및 원리 이해 클로저는 여러 함수형 프로그래밍 언어에서 등장하는 보편적인 특성이다. 다양한 서적에서 클로저를 한 문장으로 요약해서 설명하는 부분들을 살펴보자. 자신을 내포하는 함수의 컨텍스트에 접근할 수 있는 함수 함수가 특정 스코프에 접근할 수 있도록 , 의도적으로 그 스코프에서 정의하는 것함수를 선언할 때 만들어지는 유효범위가 사라진 후에도 호출할 수 있는 함수이미 생명 주기상 끝난 외부 함수의 변수를 참조하는 함수자유변수가 있는 함수와 자유 변수를 알 수 있는 환경의 결합로컬 변수를 참조하고 있는 함수 내의 함수자신이 생성될 때의 스코프에서 알 수 있었던 변수들 중 언젠가 자신이 실행될 때 사용할 변수들만을 기억하여 유지시키는 함수MDN에서는 클로저에 대해"클로저는 함수와 그 함..

3,4강 발표자료

3장 this 자바스크립트에서 this는 기본적으로 함수가 호출될 때 함께 결정됩니다.(함수가 호출될 때 생성되는 실행 컨텍스트는 생성과 동시에 this 바인딩 과정을 거치기 때문입니다) >바인딩 : 프로그램의 어떤 기본 단위가 가질 수 있는 구성요소의 구체적인 값, 성격을 확정하는 것(예: int num 123; > num은 변수의 이름, int는 변수의 자료형, 123은 변수의 자료값이라는 구체적인 값을 할당하는 과정)전역 공간에서의 this 전역 공간에서는 전역 컨텍스트를 생성하는 주체가 전역객체이기 때문에 this는 이 전역객체를 가리키게 됩니다. 전역 변수를 선언하면 JS 엔진은 해당 변수를 전역 객체의 프로퍼티로도 할당하는데 예시를 통해 살펴봅시다. //전역 공간(브라우저)var a = 1; ..

4장 콜백함수

1. 콜백함수란? 콜백함수는 다른 코드의 인자로 넘겨주는 함수이다. 일상생활에서 예를 들어보자. A와 B는 다음 날 아침 8시에 만나기로 하고 잠을 잔다.약속 장소에 가려면 늦어도 6시에는 일어나야 한다.A는 불안한 마음에 수시로 깨어 시계를 확인한다.계속 잠을 설치다가 결국 5시 즈음 포기하고 일어나고야 만다.한편 B는 알람시계를 세팅한다.시계가 정한 시각에 울리지 않을 염려는 없고 평소 알람소리에 쉽게 눈을 뜨곤 했던지라 안심하고 꿀잠을 잔다. 6시가 되자 시계의 알람소리를 듣고 상쾌하게 일어난다.A는 수시로 시간을 구하는 함수를 직접 호출한다. 반면 B는 시계의 알람을 설정하는 함수를 호출했고,해당 함수는 호출당시에는 아무것도 하지 않다가 B가 정해준 시각이 됐을 때 '알람을 울리는' 결과를 반환했..