일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- execution context
- react 기초
- 자료구조
- python algorithm
- OS
- 프로그래머스
- 비동기
- typeScript
- Python
- 자바스크립트
- 파이썬
- JavaScript
- context switching
- java
- node.js
- codestates
- Zerobase
- 글또
- 파이썬 알고리즘 인터뷰
- Computer Science
- 코드스테이츠
- 운영체제
- 개발공부
- 컴퓨터공학
- 알고리즘
- useState
- REACT
- 자바
- Operating System
- algorithm
- Today
- Total
목록분류 전체보기 (108)
Back to the Basics
알고리즘 문제를 풀면서 정규식을 사용하면 코드를 더 간결하고, 불필요한 반복문 또는 조건문을 줄일 수 있다는 것을 알게 되었다. 20줄이 넘는 코드를 단 10줄도 안 되는 코드로 작성된 것을 보고 충격을 받은 이래로 정규식에 대해 조금 더 알고 있으면 좋을 것 같다는 생각을 했다. MDN을 읽어보고 정규 표현식의 사용법을 간단하게 소개한 후 기호의 사용화 메서드의 사용 위주로 포스팅을 진행하겠다. 정규표현식 엔진이 언어 별로 달라 일부 표현이나 문법이 다르다고 한다. 이 포스팅은 JavaScript를 기준으로 작성되었다. 1. 정규식에 대하여 정규표현식 (Regular Expression, 이하 정규식) 이란 문자열에 포함된 특정 문자열을 조작하기 위해 사용하는 패턴이다. 정규식을 사용하는 이유는 아래와..
Achievement Goals JSON 구조가 재귀 하수를 사용할 수 있는 Tree 구조임을 이해할 수 있다. (stringifyJSON) JSON.stringify와 JSON.parse가 serialize, deserialize라는 것을 이해할 수 있다. JSON.stringify와 JSON.parse를 사용하여 자바스크립트 값과 JSON을 오갈 수 있다. JSON에 재귀 호출을 사용할 때, 어디에 사용해야 할지 이해할 수 있다. 1. JSON이란?? JSON은 JavaScript Object Notation 의 약자로 Lightweight data-interchange format. 즉, "경량의 Data 교환 형식"이다. 데이터 교환을 위해서 만들어진 객체 형태의 포맷이다. JSON은 이해하기 쉽..
문자열 조작은 코딩 테스트에서 매우 빈번하개 출제되고 실무에서도 다양한 분야에 쓰이는 주제라고 한다. 정보 처리 분야웹 페이지를 탐색할 때 문자열 처리 애플리케이션을 이용하게 되며 문자열 처리는 정보 처리에 핵심적인 역할을 한다. 통신 시스템 분야 데이터 전송은 문자열 처리 알고리즘이 탄생한 배경 이기도 하며, 데이터 전송에서 문자열 처리는 매우 중요하다. 프로그래밍 시스템 분야 프로그램은 그 자체가 문자열이며, 컴파일러나 인터프리터는 문자열을 기계어로 번역하기 때문에 매우 정교한 문자열 처리 알고르짐 등이 사용된다. 이번 장에서는 파이썬 문자열 자료형에 있는 기능들과 문자열 조작과 처리에 사용되는 기법을 알아본다. 유효한 팰린드롬 leetcode의 125 문제인 Valid Palindrome 문제를 통..
1. 리스트 입력순서 유지, 동적 배열로 구현됨 표 5-1 언어별 동적 배열 구현 언어 동적배열 Python list() C++ std::vector JAVA ArrayList 표 5-2 리스트의 주요 연산 시간 복잡도 연산 시간 복잡도 설명 len(a) O(1) 전체 요소의 개수를 리턴한다 a[i] O(1) 인덱스 i의 요소를 가져온다 a[i:j] O(k) i부터 j까지 슬라이스의 길이만큼 k개의 요소를 가져온다. 이 경우, 객체 k개에 대한 조회가 필요하므로 O(k) 이다. elem in a O(n) elem 요소가 존재하는지 확인한다. 처음부터 순서 탐색이므로 n만큼 시간이 소요된다. a.count(elem) O(n) elem 요소의 개수를 리턴한다 a.index(elem) O(n) elem 요소의..
Prototype 1. Object Prototype JavaScript는 Prototype 기반 언어(Prototype-based Language)이다. 모든 객체들이 Prototype 객체(Prototype Object)를 갖고 있고, 이를 통해 메서드와 속성들을 상속받는다. 공부를 하면서 제일 헷갈렸던 것은, prototype property, prototype, __proto__ 이다. Prototype property : 모든 함수 객체의 Constructor는 Prototype이라는 property(속성)을 갖고 있다. prototype 속성은 객체가 생성될 당시 만들어지는 객체 자신의 원형이 " 될 " prototype 객체를 가리킨다. 즉, 자신을 만든 원형이 아닌! 자신을 통해 만들어질 ..
OOP Basic concepts Application을 만들 때 객체지향을 이용하고 응용하면 좋은 설계를 할 수 있다. 객체지향 프로그래밍의 주요 컨셉으로는 크게 네 가지가 있다. 캡슐화 (Encapsulation)와 정보은닉 (Informaion Hiding) 우리는 객체의 생성을 위해 class를 디자인한다. 좋은 class를 만들기 위한 최소한의 조건은 정보은닉과 캡슐화이다. 정보은닉(Information Hiding) 정보은닉이란, 직접적으로 변경되면 안 되는 변수에 대한 접은을 오직 별도의 함수로 접근하도록 유도하는 것이다. 실수로 변수를 변경하려는 시도가 있을 때, 실수가 쉽게 발견되고 잘못된 값이 저장되지 않도록 제한된 접근 방법으로의 접근만 허용하는 방법이다. 캡슐화(Encapsulati..
Section 1이 끝나고 드디어 Section II에 들어섰다. 그 첫 번째 JS/Node 객체지향이다. 이번 Lesson 에서는 객체 지향 프로그래밍(OPP, Object-oriented programming)이 무엇인지 알아보고 객체 지향 프로그래밍의 특징, 그리고 이를 구현하는 방법과 상속에 대한 개념들을 공부한다. Achievement Gials 클래스와 인스턴스라는 용어를 이해한다. new , class 키워드 사용법 이해 현실 세계의 모델 --> class의 메서드와 속성을 디자인한다. 객체 지향 프로그래밍 특징을 이해한다. 캡슐화 , 상속, 추상화, 다령성 JavaScript에서 객체 지향 프로그래밍을 구현하는 방법을 이해한다. Prototype이 무엇인지 이해한다. 객체 지향 프로그래밍 ..
이번 포스팅 에서는 시간복잡도를 나타내는 빅오와 파이썬의 자료형을 공부해보자. big-O (빅오) 입력값이 커질 때 알고리즘의 실행 시간(시간 복잡도)과 함께 공간 요구사항(공간 복잡도)이 어떻게 증가하는지를 분류하는데 사용 시간 복잡도를 분석할 때 '상한'과 '최악'의 경우에 대해 혼동하는 부분이 있음 분할 상환: 함수의 동작을 설명하는 매우 중요한 방법 중 하나 파이썬의 자료형 파이썬 자료형의 특징 1. 빅오 (1) 빅오 빅오는 점근적 실행 시간(Asymptotic Running Time)을 표기할 때 가장 널리쓰이는 수학적 표기 중 하나이다. 입력값 n이 커질 때 (입력값이 무한대를 향할 때) 함수의 실행 시간의 추이를 나타낸다. 이러한 점근적 실행 시간을 시간 복잡도라고 한다. 충분이 큰 입력에서..