[JAVA] Primitive Type 과 Wrapper Class
·
스터디/JAVA
💡기본형과 참조형 JAVA의 변수는 기본적으로 기본형(Primitive Type)과 참조형(Reference Type)으로 나눌 수 있다. 기본형으로는 short, int, long, float, double, byte, char, boolean 으로 8가지가 있다. 1. 기본형(Primitive Type) - 모두 첫 글자가 소문자 - 산술 연산이 가능하다. - Null로 초기화 할 수 없다. 2. 참조형(Wrapper Class) - 모두 첫 글자가 대문자 - 산술 연산 불가능 - Null 사용이 가능하다. - DB와 연결시 DTO 객체에 Null이 필요한 경우 사용할 수 있다. 기본형은 변수의 값을 그대로 저장한다. 참조형은 객체의 레퍼런스를 저장한다. 참조형에는 객체가 할당되어야하는데 기본형과 달..
[자료구조] Queue (큐)
·
스터디/Algorithm
📌큐 개념 먼저 들어온 자료가 먼자 나가는 FIFO (First in First Out), 선입선출 구조의 자료구조이다. 📌큐 주요 함수 front (): 맨 앞의 요소 출력 rear() : 맨 뒤의 요소 출력 enqueue() : 큐 뒤에 요소 추가하는 함수 dequeue() : 큐 맨 앞 요소를 빼는 함수 isFull() : 큐가 가득 찼는지 확인하는 함수 isEmpty() : 큐가 비었는지 확인하는 함수 📌큐 사용 사례 데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 이용한다. 우선순위가 같은 작업 예약 (프린터의 인쇄 대기열) 은행 업무 콜센터 고객 대기시간 프로세스 관리 너비 우선 탐색(BFS, Breadth-First Search) 구현 캐시(Cache) 구현 📌구현 코드 #in..
[자료구조] Stack (스택)
·
스터디/Algorithm
📌스택이란 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO (Last In First Out) 구조의 자료 구조 📌스택 주요 함수 스택은 LIFO 구조로 가장 최근에 추가한 항목이 가장 먼저 제거된다. push() : 스택에 자료를 넣는 함수 pop() : 가장 최근에 추가한 자료를 빼는 함수 isFull() : 스택이 가득 찼는지 확인하는 함수 isEmpty() : 스택이 비었는지 확인하는 함수 📌스택 사용 사례 웹 브라우저 방문 기록 (뒤로가기) 역수 문자열 만들기 수식의 괄호 검사 (ex: 올바른 괄호 문자열 판단 등) 📌구현 코드 class Stack { private: int top, MaxSize; int *stack; public: Stack(int size); bool isFull(), ..
[Codility] Lesson8. Dominator
·
코딩 테스트
🔮문제 An array A consisting of N integers is given. The dominator of array A is the value that occurs in more than half of the elements of A. For example, consider array A such that A[0] = 3 A[1] = 4 A[2] = 3 A[3] = 2 A[4] = 3 A[5] = -1 A[6] = 3 A[7] = 3 The dominator of A is 3 because it occurs in 5 out of 8 elements of A (namely in those with indices 0, 2, 4, 6 and 7) and 5 is more than a half o..
[Algorithm] Binary Search (이분 탐색) 개념
·
스터디/Algorithm
📌이분 탐색(바이너리 서치)이란? 각 노드에 값이 있다. 노드의 왼쪽 서브트리에는 그 노드의 값보다 작은 값들을 지닌 노드들로 이루어져 있다. 노드의 오른쪽 서브트리에는 그 노드의 값보다 큰 값들을 지닌 노드들로 이루어져 있다. 좌우 하위 트리는 각각이 다시 이진 탐색 트리여야 한다. 📌이분 탐색의 검색 (Search) **조건 : 미리 정렬되어 있어야 한다. 이진탐색트리에서 키 x를 가진 노드를 검색하고자 할때, 트리에 해당 노드가 존재하면 해당 노드를 리턴하고, 존재하지 않으면 NULL을 리턴한다. 검색하고자 하는 값을 루트노드와 먼저 비교하고, 일치할 경우 루트노드를 리턴한다. 불일치하고 검색하고자 하는 값이 루트노드의 값보다 작을 경우 왼쪽 서브트리에서 재귀적으로 검색한다. 불일치하고 검색하고자 ..
[Algorithm] Priority Queue (우선순위 큐)
·
스터디/Algorithm
기본적으로 큰 값이 가장 맨 위에 오도록 queue를 쌓는다. priority_queue의 구조는 priority_queue 이다. 따라서 아래와 같이 코드를 짜면 된다. (C++기준) #include priority_queue pq; priority_queue pq; less : 가장 큰 값이 맨 위에 온다. greater : 가장 작은 값이 맨 위에 온다. 만약 직접 구현한 구조체에 해당하는 비교함수를 쓰고싶다면 아래와 같이 사용하면 된다. #include struct node{ int x, y, cost; node(int x, int y, int cost):x(x), y(y), cost(cost){} }; struct cmp{ bool operator()(node a, node b){ return ..