목록분류 전체보기 (35)
gyeong3un2
'당장 좋은 것만을 선택'하는 그리디 문제에서 '가장 큰 순서대로' 혹은 '가장 작은 순서대로'와 같은 기준을 제시한다면, 정렬 알고리즘을 사용한다. 이때, 그리디 알고리즘은 자주 정렬 알고리즘과 짝을 이뤄 출제된다. 그리디의 대표적인 문제로는 '거스름돈 문제'이다. 거스름돈 예제에서의 시간 복잡도는 O(K)로 이때 K는 화폐의 종류이다. 즉, 이 알고리즘의 시간 복잡도는 화폐의 종류에 영향을 받는다. 실전 문제 1. 큰 수의 법칙 다양한 수로 이루어진 배열이 있을 때, 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙 단, 배열의 특정한 인덱스에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없음 ex) 2, 4, 5, 4, 6으로 이루어진 배열이 있을 때, M이 8이고, K가 3이라고 가정하자..
복잡도, Complexity 복잡도는 알고리즘의 성능을 나타내는 척도이다. 복잡도는 크게 시간 복잡도(Time Complexity)와 공간 복잡도(Space Complexity)로 나눌 수 있다. 알고리즘 문제를 풀때, 단순히 '복잡도'라고 하면 보통은 시간 복잡도를 의미한다. 시간 복잡도: 특정한 크기의 입력에 대하여 알고리즘이 얼마나 오래 걸리는지를 의미한다. 이를 측정함으로써 알고리즘을 위해 필요한 연산의 횟수를 계산할 수 있다. 공간 복잡도: 특정한 크기의 입력에 대하여 알고리즘이 얼마나 많은 메모리를 차지하는지를 의마한다. 이를 측정함으로써 알고리즘을 위해 필요한 메모리의 양을 계산할 수 있다. 효율적인 알고리즘을 사용한다고 했을 때 보통 시간 복잡도와 공간 복잡도는 일종의 거래 관계(Trade..

1. 객체지향 프로그래밍? 객체지향 프로그래밍은 연관된 변수와 함수들을 한 덩어리로 묶어서 구조화하여 표현하는 프로그래밍 스타일을 말한다. 이는 즉, 어플리케이션을 실제 세상에 존재하는 객체와 같은 단위로 쪼개고 객체들이 서로 상호 작용함으로써 시스템이 동작한다! 2. 클래스란? 객체들은 클래스를 통해서 만들어 질 수 있고, 클래스는 객체가 어떤 모습을 가질지 정의하고, 묘사하는 객체의 뼈대 즉 객체를 만들어 내는 설계도, 생산틀이라고 생각하면 된다. 클래스 이름은 대문자로 시작한다. 3. 클래스와 오브젝트 관계 위 코드와 같이 클래스 속에서 정의된 함수들은 클래스 내 정의된 변수들에게 접근 가능하기 때문에 상대적으로 적은 매개변수를 가진다. 클래스 내에 정의된 변수를 프로퍼티 (Property)라고 부..

> 함수의 타입 명시 타입스크립트에서 함수의 타입 명시할 때, 함수 자신이 반환될 타입(Return)과 함수의 매개변수 타입(Parameter)을 명시할 수 있다. 함수의 반환 타입 명시 (Return) void 타입 : 아무것도 반환하지 않는 함수의 반환 값으로만 사용될 수 있는 타입 함수의 매개변수 타입 명시 (Parameter) 타입스크립트는 함수에 정의된 모든 매개변수가 함수에 필요하다고 가정하기 때문이다. 즉, 함수가 호출되면 타입스크립트 컴파일러는 아래와 같이 매개변수와 argument가 일치하지 않으면 에러가 뜬다. 이 문제를 해결하기 위해선, 선택적 매개변수(Optional Parameter)를 사용한다. 이때, 알아야 할게 있다. 만약 전달되는 매개변수가 여러 개이고 몇가지만 선택적 매개..