Front-end/자료구조(21)
-
재귀함수
재귀 함수 재귀 함수(Recursive Function)란 자기 자신을 다시 호출하는 함수를 의미함 단순한 형태의 재귀 함수 예제 '재귀 함수를 호출합니다.'라는 문자열을 무한히 출력 어느정도 출력하다가 최대 재귀 깊이 초과 메시지가 출력됨 function recursive(){ console.log('재귀 함수를 호출합니다.'); recursive(); } recursive(); 재귀 함수의 종료 조건 재귀 함수를 문제 풀이에서 사용할 때는 재귀 함수의 종료 조건을 반드시 명시해야 함. 종료 조건을 제대로 명시하지 않으면 함수가 무한히 호출될 수 있음. 팩토리얼 구현 예제 n! = 1 X 2 X 3 X ... X (n-1) X n 수학적으로 0!과 1!의 값은 1임. 내가 구현한 코드(자바스크립트) f..
2021.02.24 -
[자료구조] 큐(Queue)
큐(Queue) 스택이 LIFO(Last-In, First-Out) - 가장 나중에 들어온 것이 가장 먼저 나가는 구조 였다면 큐는 FIFO(First-In, First-Out) - 가장 먼저 들어온 것이 가장 먼저 나가는 구조(선입선출) 큐는 입구와 출구가 모두 뚫려있는 터널과 같은 형태로 시각화 할 수 있음. 예시 마트 계산대에서 줄을 서면 줄을 먼저 산 사람이 물건을 먼저 산다 모 대학교 카페 중에 '큐'라는 이름의 카페가 있다. 커피를 사려고 가장 먼저 줄을 선 사람이 먼저 커피를 주문한다 큐의 대표적인 사용 사례 프로세스 스케줄링 대부분의 입출력(파일 입출력 등) 프린터 대기열 네트워크 패킷 처리 게임 대기열(롤,오버워치) 큐의 대표적인 구현 방법 정적인 어레이(Fixed Array) 장점: 구..
2021.02.23 -
[자료구조] 스택(Stack)
스택(Stack) LIFO(Last In, First Out) 나중에 들어온 데이터가 먼저 나가는 형식의 자료구조 입구와 출구가 동일한 형태로 스택을 시각화할 수 있음. 대표적인 예시 : 박스 쌓기, 햄버거놀이, 실행취소(ctrl+z) 스택의 구현 방법 1차원배열: 구현이 상대적으로 쉬우나 인풋 사이즈를 미리 알아야 함 리스트: 구현이 상대적으로 어려우나 제한된 사이즈로부터 자유로움 주요 함수 및 프로퍼티 1) push : 데이터를 집어넣는 작업(뒤에서 부터 넣음) 2) pop : 데이터를 꺼내는 작업(뒤에서 부터 꺼냄) 3) peek : 맨 나중에 집어넣은 데이터를 확인 peek 4) top : 맨 나중에 집어넣은 데이터의 위치를 확인 5) size : 총 스택의 사이즈를 확인 6) clear : 스택..
2021.02.22