본문 바로가기

분류 전체보기

(172)
[JS Flow] callback함수 callback 함수 특징 ✔ 다른 함수(A)의 매개변수로 콜백함수(B)를 전달하면, A가 B의 제어권을 갖게된다. ✔ A에 미리 정해진 방식에 따라 B를 호출한다. ✔ 미리 정해진 방식이란 this에 무엇을 바인딩 할지, 매개변수에는 어떤 값들을 지정할지, 어떤 타이밍에 콜백을 호출할지 등이다. 여러 함수들의 정의 📌setInterval 정의 setInterval( callback, millisecond ) 코드 📌forEach 정의 arr.forEach( callback [, thisArg] ) []는 생략 가능하다는 표시다. 코드 📌addEventListener 정의 addEventListener( type, callback [, option] ) 코드
[JS Flow] 실행 컨텍스트 (hoisting, scope chain) Execution Context 란? ✔ 실행에 필요한 코드 흐름상의 배경이 되는 조건/환경 ✔ 동일한 조건/환경을 지니는 코드뭉치를 실행할 때 필요한 조건/환경정보 ✔ 함수 or 전역공간 👉 함수를 실행할 때 필요한 환경정보를 담은 객체 라고 대략적인 설명이 가능하다. 여기서, 가장 중요한 개념은 Lexical Environment인데 ✔ environmentRecord ✔ outerEnvironmentReference 로 나뉘고, 각각 hoisting과 scope chain으로도 말할 수 있다. environmentRecord hoisting : 현재 문맥의 식별자 정보를 실행 컨텍스트의 맨위로 끌어올린다 위의 코드가 hoisting 된다면, 다음과 같다. 끌어올려진 정보 전체가 environment..
[JS Flow] 데이터 타입 데이터 타입의 종류 Primitive Type(기본타입) : number, string, boolean, null, undefined Reference Type(참조타입) : object 👉 array, function, regexp 두가지 타입을 구분을 하는 이유! 어떤 차이가 있을까? 기본타입으로 변수를 선언, 값을 변경하는 메모리 그림이다. 참조하는 메모리 주소값을 바꾼다. 다음은 참조타입이다. obj이름이 가리키고 있는 값의 주소는 변경되지 않았다. 다음은 참조타입에서 중첩 객체이다. arr의 값이 바뀌면서 배열에 할당되어 있던 메모리들은 Garbage Collectiong을 당한다💥
[알고리즘] 파이썬 시간복잡도 정리 Big-O 표기 1. O(1) 상수시간 입력값 n이 주어졌을 때, 알고리즘이 문제를 해결하는데 오직 한단계만 거침 2. O(log n) 로그시간 입력값 n이 주어졌을 때, 문제를 해결하는데 필요한 단계들이 연산마다 특정 요인에 의해 줄어듬 3. O(n) 직선적 시간 문제를 해결하기 위한 단계의 수와 입력값 n이 1:1 관계를 가짐 4. O(n^2) 2차 시간 문제를 해결하기 위한 단계의 수는 입력값 n의 제곱 5. O(c^n) 지수 시간 문제를 해결하기 위한 단계의 수는 주어진 상수값 c의 n 제곱 시간 복잡도 List deque dictionary 정렬 알고리즘
[python] bisect / 이진 탐색 내장함수 import bisect 두가지 종류로 분류 가능 주어진 리스트 list, 값 x가 있을 때, x가 들어갈 인덱스를 구하는 함수 값 x를 이진탐색으로 넣는 함수 bisect.bisect_left(list, x) : list에서 x가 들어가야할 인덱스 값을 구한다 bisect.bisec_right(list, x) : list에서 x가 들어가야할 인덱스 값을 구하지만, 동일한 값이 있을 경우 동일한 값의 오른쪽 인덱스 값을 구한다 bisect.insort(list, x) : binary search로 x 값을 list에 넣는다 EX 문제 https://www.hackerrank.com/challenges/fraudulent-activity-notifications/problem?h_l=interview&pl..
[알고리즘] 프로그래머스 파일명 정렬 / python https://programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import re def solution(files): file_lst = [re.split('([0-9]+)',i) for i in files] file_lst.sort( key = lambda x : ( x[0].lower(), int(x[1]) ) ) return [''.join(lst) for lst in file_lst] re.split('([0-9]+)', i) #숫자를 기준으로 나눈다 fil_ls..
[알고리즘] 프로그래머스 n진수게임 / python https://programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def trans(n, num): arr = "0123456789ABCDEF" ret = '' if num == 0: return '0' while num > 0: ret = arr[num % n] + ret num = num // n return ret def solution(n, t, m, p): answer = '' string = '' for i in range(t*m): string += trans(..
[알고리즘] 프로그래머스 압축 / python https://programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr KAKAO를 예시로 생각해보자.. 인덱스번호는 요래 생김 규칙성을 따져본다면, 현재글자 + 다음글자가 사전에 없다면 w = c , c = c + 1 현재글자 + 다음글자가 사전에 있다면 w는 변화없음, c = c + 1 c가 마지막 인덱스 번호라면, while문을 빠져나감 w, c의 규칙성을 이용해 출력해야할 색인번호를 append 해준다 def solution(msg): answer = [] dic = {}..