
스택 (Stack) 이란? 스택은 쌓다라는 의미로, 데이터를 차곡차곡 쌓아 올린 형태의 자료구조이다. 데이터가 순서대로 쌓이며, 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 구조를 가지고 있다. 가장 대표적인 예시로는 프링글스 과자를 생각하면 된다. 스택은 정해진 방향으로만 쌓을 수 있으며, top으로 정한 곳을 통해서만 접근 할 수 있다. 새로 삽입 되는 자료는 top이 가리키는 가장 맨 위에 쌓이게 되며, 자료를 삭제할 때도 top을 통해서 삭제가 가능하다. 여기서 삽입연산을 Push, 삭제 연산을 Pop 라고 하며 이러한 스택 구조를 후입 선출(LIFO - Last In First Out) 구조라고 한다. 스택(stack)의 사용 사례 - 웹 브라우저 방문 기록(뒤로가기) - 실행 취소(undo..

자료를 관리 할때 배열이나 리스트를 자주 사용하게 된다. 자주 사용하는 만큼 배열과 리스트의 특징과 차이에 대해 알아보고자 한다. 배열(Array) 이란? 배열은 정적 자료구조이며, 배열을 만들기 위해서는 미리 크기를 정해 놓아야 한다. 그렇게 되면 해당 크기만큼의 연속된 메모리 주소를 할당 받게 된다. 연속된 메모리 주소를 할당 받고 있기 때문에 데이터가 인덱스(index)라는 것을 갖게 된다. 일반적으로 array[0] 같은 식으로 배열에 접근할 때 대괄호([]) 안에 숫자가 index이다. index를 갖게 된다는 것은 즉 임의 접근이 가능하다는 장점이 있어 접근과 탐색에 용이합니다. 하지만 크기를 미리 정해놓았기 때문에 수정하는 것이 불가능하며 이미 크기를 정해 놓은 터라 해당 배열 크기 이상의 ..

Linked List 란? 데이터를 링크로 연결해서 관리하는 자료구조이다. 자료의 순서는 정해져 있지만, 배열과 다르게 메로리상 연속성이 보장되지는 않는다. Linked List 장점 vs 단점 장점 단점 - 데이터 공간을 미리 할당할 필요가 없다. - 리스트의 길이가 가변적이라 데이터 추가 / 삭제가 용이하다. - 연결구조를 위한 별도 데이터 공간이 필요하다. - 연결 정보를 찾는 시간이 필요하여 접근 속도가 상대적으로 느리다. - 데이터 추가, 삭제 시 앞뒤 데이터의 연결을 재구성하는 작업이 필요하다. Linked List 구조 Node -> 데이터 저장 단위로, 값과 포인터(연결 정보)로 구성되어 있다. 데이터 추가 방법 단방향 연결리스트 더보기 public void addData(int data,..

두 수가 주어지며, 두수의 최대 공약수와 최소 공배수를 구하라 약수란? 약수란 어떤 수를 나누어떨어지게 하는 수를 말한다. 약수에는 항상 1과 자기 자신을 포함한다. 12의 약수를 구하면 1, 2, 3, 4, 6, 12 가 된다. 최대 공약수란? 0 이 아닌 두 개 이상의 정수의 공통되는 약수 중에서 가장 큰 수 이다. 따라서 두 정수 a, b 의 최대 공약수는 a 의 약수인 동시에 b의 약수인 수, 즉 두 정수 a, b 의 공약수 중에서 가장 큰 수를 의미한다. 최소 공배수란? 0이 아닌 두 개 이상의 정수의 양의 공배수 중에서 가장 작은 수이다. 따라서 두 정수 a, b의 최소 공배수는 a 의 배수인 동시에 b 의 배수인 수, 즉 두 정수 a, b 의 공배수 중에서 양수인 것 중 가장 작은 수를 의미..

1. 합의 법칙 합의 법칙은 A에서 발생되는 case 와 B에서 발생되는 case 를 더하는 법칙이다. 이때 중요한건 A와 B에서 겹치는 case 는 빼 주어야한다. 집합으로 따지면 합집합과 같다. n(A U B)= n(A) + n(B) - n(A ∩ B) 예제 - 두 개의 주사를 던졌을 때 합이 3 또는 4의 배수일 경우의 수 3의 배수의 경우의 수 : 12 3 : (1, 2) (2, 1) 6 : (1, 5) (2, 4) (3, 3) (4, 2) (5, 1) 9 : (3, 6) (4, 5) (5, 4) (6, 3) 12 : (6, 6) 4의 배수의 경우의 수 : 9 4 : (1, 3) (2, 2) (3, 1) 8 : (2, 6) (3, 5) (4, 4) (5, 3) (6, 2) 12 : (6, 6) 위..
- Total
- Today
- Yesterday
- java
- 알고리즘
- 제로베이스 백엔드 스쿨
- 코딩테스트공부
- 프로그래머스 자바
- 코테준비
- 개발자 취준
- 제로베이스 백준 장학금
- 코딩테스트 준비
- 취업 준비
- 코딩테스트
- 백엔드 개발자 기술 면접 준비
- 기술 면접 준비
- 취준
- 코테 준비
- 프로그래머스 카카오
- 자바공부
- 백준
- 백엔드 개발자 취업 준비
- 알고리즘 공부
- 코딩테스트 공부
- 백엔드 개발자
- 취업준비
- 개발자 취업 준비
- 개발자 면접 준비
- 알고리즘공부
- 자바
- 주니어 개발자 취업 준비
- 코테공부
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |