일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Machine Learning
- 배열
- alexnet
- cors
- APOLLO
- 코딩테스트
- 스택
- 이진탐색
- 프로세스
- 프로그래머스
- 큐
- 해시테이블
- vue3
- 웹팩
- GraphQL
- pytorch
- 프론트엔드
- 포인터
- 알고리즘
- RT scheduling
- 연결리스트
- 자료구조
- 브라우저
- RxJS
- 자바스크립트
- 연결 리스트
- 컨테이너
- 릿코드
- 타입스크립트
- C
- Today
- Total
목록배열 (6)
프린세스 다이어리
1. 배열로 접근하는 방법 전체 풀이 function solution(bridge_length, weight, truck_weights) { // queue 초기화 let queue = new Array(bridge_length).fill(0); let seconds = 0; while (queue.length) { // queue 하나씩 실행 queue.shift(); seconds++; let queueSum = queue.reduce((acc,cur) => acc + cur, 0); if (truck_weights.length) { if (queueSum + truck_weights[0] queue에 push(); let temp = truck_weights.shift(); queue.push(te..
1. 큐란 무엇인가 큐(queue)는 뒤쪽으로 들어가서 앞쪽으로 나오는 자료 구조다. 스케줄링, 탐색 알고리즘 등에서 다방면으로 활용된다. 큐는 크게 데이터를 넣는 push, 데이터를 빼내는 pop 함수로 이루어진다. 스택과 마찬가지로 배열을 이용한 구현 방법과 연결 리스트를 이용한 구현 방법으로 나누어진다. push(7) -> push(5) -> push(4) -> pop() -> push(6) -> pop() 2. 큐를 배열로 구현하기 #include #define SIZE 10000 #define INF 99999999 int queue[SIZE]; int front = 0; int rear = 0; void push(int data) { if (rear >= SIZE) { printf("큐 오버플..
1. 스택(Stack)의 개념 스택은 한쪽으로 들어가서, 동일한쪽으로 나오는 자료구조다. 스택에 한쪽 방향으로 데이터를 넣는 Push와 스택에서 한 쪽 방향으로 데이터를 빼내는 Pop으로 이루어져 있다. 일반적으로 스택은 리스트처럼 생겼기 때문에 배열을 이용한 구현 방법과 연결 리스트를 이용한 구현 방법으로 나뉜다. Push(7) -> Push(8) -> Push(4) -> Pop() -> Push(2) -> Pop() 위 함수를 차례로 실행하면 다음 그림과 같다. 2. 배열을 이용한 스택 구현 #include #define SIZE 10000 #define INF 99999999 int stack[SIZE]; int top = -1; 먼저 전체 스택의 크기 SIZE를 10000으로 정해주고, INF에 ..
1. 연결 리스트의 장점 일반적으로 배열을 사용하여 데이터를 순차적으로 저장하고, 나열할 수 있다. 하지만 배열을 사용하는 경우, 메모리 공간이 불필요하게 낭비될 수 있다. 연결 리스트를 활용하여 이를 개선할 수 있다. 다음은 연결 리스트가 아닌, 일반적인 배열을 사용하여 특정 원소를 배열의 첫자리에 추가하는 소스다. #include #define INF 10000 int arr[INF]; int count = 0; void addBack(int data) { arr[count] = data; count++; } void addFirst(int data) { for (int i = count; i >= 1; i--) { arr[i] = arr[i - 1]; } arr[0] = data; count++; ..
1. 포인터의 개념 이전까지 공부한 변수는 그 자체로 자신의 자료형에 맞는 값을 저장한다. int, double, char 등이 그 예시다. 포인터는 메모리의 주소 값 자체를 저장한다. int형 변수를 만들었다고 하면, 컴퓨터 어딘가에 int가 저장된 공간이 있을 것이고, 그것의 메모리 주소를 가리키고 있는 포인터도 있다. 포인터는 메모리 주소의 값을 가지기 때문에 컴퓨터 메모리에 바로 접근할 수 있다. int a = 5; int 5 값을 가지는 a 변수가 있고 이것의 메모리 주소는 0xAFB03912 라고 가정해 보자. int *b = &a; 포인터는 int *b = &a; 처럼 선언할 때 * 연산자를 사용하여 포인터 변수임을 표현한다. 이 의미는 포인터 변수 b가 a의 메모리 주소를 가리키고 있다는 ..
1. 배열을 사용하는 이유 여러 개의 숫자가 있는 경우, 동일한 자료형을 여러 개 담는 기술이 필요하다. 0 1 2 3 4 5 6 7 8 9 6 5 4 3 9 8 0 1 2 7 위에 줄은 인덱스, 밑에 줄은 데이터다. 이 경우 데이터가 모두 int 형이면 int형 한 개당 4 bytes 이므로 총 40 bytes이다. 2. 배열의 선언 및 접근 방법 자료형 배열명[배열의 크기] = {초기화 값}; 여기에서 초기화 값은 있을 수도, 없을 수도 있다. 배열의 크기가 3이면 초기화 값을 다음과 같이 넣어줄 수도 있고, int array[3] = { 1, 2, 3 }; 배열의 크기에 상관없이 모든 값을 0으로 넣어주고 싶다면 0 하고 ', ' 콤마를 넣어주면 알아서 전체 원소가 0으로 초기화되어 들어간다. in..