객체지향프로그램 TIL
재귀 recursion: 함수 자신을 리턴하는 함수 재귀적 사고 연습? 입력값이나 문제의 순서를 고려하여, 문제를 쪼갤 수 있을 때까지 쪼깬다. 가장 작은 쪼갠 부분 ⇒ base case (재귀의 탈출 조건이기도 하다) 쪼개지고 남아 있어 base case로 재귀를 사용하는 부분 ⇒ recursive case 모든 재귀는 for 문이나 while 로 ...
재귀 Coplit
목적 >sprint를 통해 Props와 States를 적용해보는 건 크게 어렵지 않았다. 하지만 개념 정리는 쉽지 않았다. 이번 기회에 Props와 States를 완벽히 정리하고 싶어 글을 남긴다. 이는 React 공식 사이트를 참조했다. Components와 Props 가장 간단히 컴포넌트를 표현하는 방식 = JavaScript 함수 위 컴포넌트의 ...
개념 Blocking: 한 작업이 완료되기 전까지 다른 작업을 진행하지 못하는 개념 동기적 (synchronous): 한 작업의 완료 시점과 다른 작업의 시작 시점이 같은 개념 이런 불편함을 해소하기 위해, 비동기적(asynchronous)으로 작동하는 런타임이 개발되었다. 아래와 같은 작업에 유용하다. 백그라운드 실행, 로딩 창 등의 작업 인터넷에...
사용 권한 파일과 폴더에는 각각 소유자, 그룹, 나머지의 읽기/쓰기/실행 권한이 다르게 설정되어 있다. CLI에서 파일 또는 폴더를 생성하고, ls -l을 입력하면 확인할 수 있다. 권한 변경 2가지 방법 1) Symbolic method 액세스 클래스, 연산자, 액세스 타입으로 구분합니다. ![](https://images.velog.io/images...
탐욕 알고리즘과 함께 언급되는 Dynamic Programming (동적 계획법) 탐욕 알고리즘: 매순간 최적의 방법을 찾음 DP: 모든 경우의 수를 조합해 문제 해결 DP의 문제 해결 과정 1) 주어진 문제를 하위 문제 Sub problem으로 나눈다 2) 하위 문제의 해결 방법을 결합하여 문제를 해결한다 DP의 조건 큰 문제를 작은 문제로 나눌 수 ...
- 문제: 가위바위보 게임은 2인 이상의 사람이 동시에 '가위, 바위, 보'를 외치고 동시에 가위, 바위 또는 보 중에서 한 가지를 의미하는 손 모양을 내밀어 승부를 결정짓는 게임입니다. 세 판의 가위바위보 게임을 할 경우, 한 사람은 세 번의 선택(예. 가위, 가위, 보)을 할 수 있습니다. 세 번의 선택으로 가능한 모든 경우의 수를 구하는 함수를 작성합...
- 문제: 개업 이래로 항상 승승장구하는 '승승장구 치킨집'의 비결은 소스에 있다. 수많은 타사 브랜드 치킨집들이 승승장구 치킨집의 소스 비결을 알아내려고 했으나 빈번히 포기했다. 그 이유는 5대째 내려오는 '비밀의 승승장구 치킨 소스 비율 레시피'는 70억 인구 중 사장님만 알고 있기 때문이다. 최근, 누리꾼 사이에서 이 레시피의 일부분을 발췌했다는 소문...
DP의 조건 1) 하나의 Problem을 Sub-Problem으로 구분할 수 있는가 2) Sub-Problem의 값으로 Problem을 구할 수 있는가 3) Sub-Problem이 중복이 되는가 전에 공부한 재귀를 살펴보자 Fibonacci 우리는 재귀를 사용해서 fibonacci 문제를 해결할 수 있었다. 재귀는 아래와 같은 단점이 있다. 1) n이 ...
Sort의 종류는 참 다양하다... Bubble, Quik, Insert, Merge 등... 세상에는 sort의 종류가 참 많다. Radix sort는 무엇인가? 근데 먼저 Counting sort를 공부해야 했다... > 5, 1, 3, 4, 1, 2, 5, 6 이라는 A 수열을 정렬한다고 하자 우선 최대 숫자 6을 참조하여 index 6까지 존...
프로세스 실행 파일, 애플리케이션을 실행하는 상태를 프로세스라고 한다. 운영체제가 여러 프로세스를 함께 진행하기 때문에 멀티 태스킹이 가능하게 되었다. 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받는다. 스레드는 프로세스 내에서 각각 Stack만 따로 할당받고 Code, Data, Heap 영역은 공유한다....
인코딩과 유니코드 유니코드란? 전 세계 다양한 문자와 기호를 컴퓨터에서 일관되게 표기하기 위한 산업 표준이다. 문자나 기호를 컴퓨터에 보내려면 인코딩(부조화)하여 보내고, 해독할 때는 디코딩하여 처리한다. 인코딩과 디코딩의 기준을 charset이라고 부른다. charset의 국제 표준이 유니코드이다. ASCII (American Standard Code f...
가비지 컬렉션 더 이상 사용하지 않는 메모리를 자동으로 삭제 (자바, C#, 자바스크립트 등에서 쓰인다) C++, C에는 가비지 컬렉터가 내장되어있지 않다. 대표적인 가비지 컬렉션 종류 트레이싱: 객채에 in-use flag를 마크하고 가비지 컬렉션 사이클마다 마크되지 않은 객체를 삭제 레퍼런스 카운팅: 변수가 참조될 때 마다 카운트가 올라가고, 참조하고...