본문 바로가기

전체 글

(159)
[Javascript] - 클래스 상속 extends 키워드 - Animal이라는 클래스를 만들었다. - 위 그림은 객체 animal과 클래스 Animal의 관계를 그림으로 표현한 것이다 - 위 예제에서 또 다른 클래스 Rabbit을 만들었다 Rabbit은 Animal을 상속받는다. - 클래스 확장 문법 class Child extends Parent를 사용해 클래스를 확장할 수 있다 또는 상속받을 수 있다. - 키워드 extends는 프로토타입을 기반으로 동작한다 extends는 Rabbit.prototype.[[Prototype]]을 Animal.prototype으로 설정한다 그렇기 때문에 Rabbit_prototype에 메서드를 찾지 못하면 Animal.prototype에서 메서들르 가져온다. - 따라서 클래스 Rabbit을 사용해 만든..
백준 1931 - 회의실 배정 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net * 문제 풀이 이 문제는 주어진 회의 시간과 종료 시간을 바탕으로 회의실을 사용할 수 있는 가능한 최대 회의 개수를 구하는 문제다 그리디 알고리즘 문제로서 배열을 순회 할 수 있도록 재구성해야한다 나는 배열을 재구성하는 방법은 종료시간이 빠른 순서대로 재구성 하였다 즉 종료시간으로 오름차순 정렬 하였다
백준 2810 - 컵홀더 https://www.acmicpc.net/problem/2810 2810번: 컵홀더 첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다. www.acmicpc.net 문제 설명 이 문제는 커플 석이 늘어날수록 컵홀더 사용 갯수가 감소한다 따라서 L 이 나올때마다 countL을 증가시키고 countL이 2보다 작다면 그냥 N을 출력하고 2 이상이라면 N = Math.floor(count / 2) + 1을 출력한다.
백준2309 - 일곱 난쟁이 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 문제 풀이 전체 난쟁이의 키의 합은 일곱 난쟁이의 키의 합인 100과 나머지 두 난쟁이의 키의 합이다 즉 전체 난쟁이의 키의 총 합은 위의 예제 20 7 23 19 10 15 25 8 13 에서는 총 140이다. 여기서 25와 15의 값을 뺀 값이 100이다 따라서 반복문을 통한 완전 탐색 알고리즘을 이용해서 두 난쟁이를 제외한 값을 출력하면 된다 이때 2개를 빼서 합이 100이 되는 모든 쌍을 찾으면 안..
프로그래머스[LEVEL2] - 괄호 회전하기 https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 이 문제는 스택으로 풀이했다 s[i]가 ( 또는 { 또는 [ 이라면 stack에 푸쉬하고 만약 ) } ] 이라면 스택의 마지막 요소를 체크한 후 올바른 괄호라면 stack 마지막 요소를 지우고 아니라면 valid를 false로 할당한다. 내부 for문이 종료되면 valid가 true이고 stack이 빈 배열이라면 result를 증가시킨다 그리고 s를 회전시킨다. 위 과정을 반복하고 re..
[Javascript] - Class와 기본문법 클래스는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 일종의 틀로 객체를 정의하기 위한 상태와 메서드로 구성된다. - 실무에선 사용자나 물건같이 동일한 종류의 객체를 여러 개 생성해야 하는 경우가 잦다 이럴 때 new function을 사용할 수 있는데 모던 자바스크립트에서 도입된 클래스라는 문법을 사용하면 객체지향 프로그래밍에서 사용되는 다양한 기능을 자바스크립트에서 사용할 수 있다. 기본 문법 위 예제가 class의 기본 문법이다 이렇게 클래스를 선언하고 new MyClass()를 호출하면 내부에서 정의한 메서드가 들어있는 객체가 생성된다. 객체의 기본 상태를 설정해주는 생성자 메서드 constructor()는 new에 의해 자동으로 호출되므로 특별한 절차 없이 객체를..
[Typescript] - const assertion ( + enum) 리터럴 타입 Typescript 에서는 포괄적인 타입 (string, number, boolean) 외에도 정확한 값을 설정하는 것이 가능하다. 위 예제처럼 typescript 문자열을 title에 타입으로 부여하면 아래와 같이 title에 typescript가 아닌 다른 값을 입력하면 컴파일 에러가 발생한다. 이는 string, number 등 포괄적인 의미를 담고 있는 primitive type 뿐만 아니라 typescript 문자같은 정확한 값을 타입으로 선언할 수 있다. 타입 추론 정적 타이핑을 해주는 언어에는 대개 타입추론 이라는 기능이 포함되어 있다 선언하는 모든 변수마다 항상 그 타입까지 같이 적어주어야 한다면 매우 불편하다 이때 타입 추론을 지원하는 언어에서는 위에서 언급했던 리터럴 타입을..
[Javascript] - 프로토타입 메서드와 __proto__ 가 없는 객체 __proto__는 브라우저를 대상으로 개발하고 있다면 다소 구식이기 때문에 사용하지 않는 것이 좋다 표준에도 관련 내용이 명시되어 있다 대신 다음과 같은 모던한 메서드를 사용하자 1 Object.create(proto, [descriptors]): [[Prototype]]이 proto를 참조하는 빈 객체를 만든다 이때 프로퍼티 설명자를 선택적으로 추가로 넘길 수 있다. 2. Object.getPrototype(obj): obj의 [Prototype]]을 반환한다. 3. Object.setPrototypeOf(obj, proto): obj의 [[Prototype]]이 proto 가 되도록 설정한다. - 위에서 언급한대로 Object.create에는 프로퍼티 설명자를 선택적으로 전달할 수 있다 위 예제는 ..