[파이썬] 그리디(Greedy) 알고리즘 포스팅 썸네일 이미지

Developer/Python

[파이썬] 그리디(Greedy) 알고리즘

그리디(Greedy) 알고리즘 당장 좋은 것만 선택하는 알고리즘 "그리디(Greedy) 알고리즘은 단순하지만 강력한 알고리즘이다." - 이것이 취업을 위한 코딩 테스트다 with 파이썬 그리디(Greedy)란 단어를 번역하면 "탐욕스러운"이라는 뜻이다. 그리디 알고리즘을 말할 때 탐욕법이라고 불리는 이유이다. 여기서 '탐욕법'이라는 말의 뜻은 '현재 상황에서 가장 좋은 방법을 취하는 것'을 의미한다. 그리디 알고리즘을 이용하면 그 순간 '가장 좋은 것'만을 선택하여 적용하고, 그 이후의 상황은 고려하지 않는 것이다. 그리디 알고리즘과 다른 알고리즘을 비교했을 때 차이점은 다음과 같다. 다른 알고리즘을 사용하기 위해서는 사용법을 정확하게 알고 있어야 하지만, 그리디 알고리즘은 그렇지 않다는 것이다. 예를 ..

2022.03.11 게시됨

[자바스크립트] 호이스팅 포스팅 썸네일 이미지

Developer/Javascript

[자바스크립트] 호이스팅

호이스팅(Hoisting) 호이스팅(hoisiting)이란 자바스크립트 엔진이 변수와 함수의 메모리 공간을 선언하기 이전에 미리 할당하는 것을 의미한다. 흔히 호이스팅에 대해 말할 때, "변수와 함수의 선언을 해당 범위(Scope) 최상단으로 올리는 것."이라고 말을 하는데 정확한 표현은 아니다. 정확히는 그렇게 보이는 현상을 말한다. 자바스크립트 엔진은 코드를 실행하기 전에 코드를 먼저 살펴본다고 생각하면 된다. 자바스크립트 엔진은 코드를 실행하기 전에 실행 가능한 코드를 형상화하고 구분하는 과정을 거친 후, 실행하기 전에 모든 선언을 범위(Scope)에 등록한다. 이 과정을 통해 메모리에 미리 할당해 두었기 때문에 선언문보다 호출이 앞서도 에러 없이 동작이 가능하다. 다른 언어에서는 당연히 에러를 발..

2022.03.04 게시됨

Developer/Javascript

[자바스크립트] sort()

sort() 배열의 요소를 적절한 위치에 정렬한 후 그 개별을 반환해준다. sort 함수는 원본 배열을 바꾼다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따라 정렬된다. const months = ['March', 'Jan', 'Feb', 'Dec']; months.sort(); console.log(months); // expected output: Array ["Dec", "Feb", "Jan", "March"] const array1 = [1, 30, 4, 21, 100000]; array1.sort(); console.log(array1); // expected output: Array [1, 100000, 21, 30, 4] 1번 예시 month 배열의 원소를 아스키코드 표에 따라 오름..

2022.02.18 게시됨

Developer/Javascript

[자바스크립트] filter(), reduce()

filter() filter 함수는 콜백 함수의 조건에 해당하는 모든 요소가 있는 배열을 새로 생성한다. let newArr = arr.filter(callbackFunction (element, index, array), thisArg); filter 함수의 매개변수는 콜백 함수와 thisArg이다. thisArg는 filter에서 사용될 this이고, thisArg를 사용하지 않는 경우 undefined가 전달된다. 콜백 함수의 매개 변수는 element, index, array 3 가지이다. element : value 값 index : value의 인덱스 값 array : filter에서 사용되는 배열 객체 let arr = [1,2,3,4] let newArr = arr.filter(functi..

2022.02.18 게시됨

Developer/Javascript

재귀 함수와 스택 프레임(Stack Frame)

재귀 함수 재귀 함수는 함수가 직, 간접적으로 자신을 호출하는 프로세스이다. 반복적인 호출이 필요한 문제를 해결할 때 사용하고, 종료 시점을 유의해야 한다. 종료 시점을 신경 쓰지 않으면 무한 호출에 빠지게 된다. 스택 프레임(Stack Frame) 스택(Stack) 영역은 함수의 호출과 관계되는 지역 변수, 매개 변수가 저장되는 영역으로, 해당 영역은 함수가 호출되면서 할당되고, 함수가 종료되면 소멸된다. 함수가 호출되면 스택에 함수의 매개 변수, 지역 변수, 복귀 주소 등이 입력된다. 이렇게 스택 영역에 저장되는 함수의 정보를 스택 프레임(Stack Frame)이라고 한다. function solution(n) { function DFS(L) { if (L === 0) return; else { DF..

2022.02.16 게시됨

[파이썬] 파이썬 리스트 컴프리헨션 / 프로그래머스 메뉴 리뉴얼 포스팅 썸네일 이미지

Developer/Python

[파이썬] 파이썬 리스트 컴프리헨션 / 프로그래머스 메뉴 리뉴얼

정수 1부터 10까지가 담긴 리스트를 생성하려면 파이썬에서 다음과 같이 작성한다 arr = [] for i in range(1, 11): arr.append(i) print(arr) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 반복문을 통해 정수를 리스트에 넣는 것이다. 이것을 반복문을 활용한 컴프리헨션이라고 한다. 1부터 10까지 담긴 리스트를 생성하는 리스트 컴프리헨션의 형태는 다음과 같다. 리스트 컴프리헨션 형태 [i for i in range(1, 10)] 리스트 = [ 수식 for 항목 in range() ] 형식 반복문을 활용해 1부터 10까지가 담긴 리스트를 생성하는 것을 리스트 컴프리헨션 형태로 만들면 다음과 같다. arr = [] for i in range(1, 11): ..

2022.01.13 게시됨