일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 팩토리얼
- GCD
- 파스칼표기법
- bigo
- 삼성코테
- 카멜표기법
- 백엔드개발자
- 기업코테
- SQL
- 노드연산
- 코테
- 메소드
- codingtest
- 논리곱
- 1차원배열
- SELELCT
- 코딩테스트
- MySQL
- 자바집합
- Divisior
- 부정연산자
- foreach
- Java
- 완전탐색
- 투포인터
- 최대공약수
- 백엔드개발
- labels
- 논리합
- 참조형타입
- Today
- Total
목록BackEnd (39)
Data Blended Whisky

알고리즘 어떤 문제 해결을 위한 절차나 방법 알고리즘의 조건 입력 출력 명확성 유한성 ( 정해진 시간 내에 알고리즘이 실행 돼야하는 것 ) 효율성 좋은 알고리즘이란 ? 정확성 시간 복잡도 공간 복잡도 알고리즘 종류 정렬 이진탐색 / 투포인터 그리디 알고리즘 분할 정복 / DP 백 트래킹 최단 경로 최소 신장 트리 정렬 난이도가 낮지만 속도가 느린 알고리즘 버블 정렬, 삽입 정렬, 선택 정렬 난이도가 어렵지만 속도가 빠른 알고리즘 합병 정렬, 힙 정렬, 퀵 정렬, 트리 정렬 하이브리드 정렬 팀 정렬, 블록 병합 정렬, 인트로 정렬 기타 정렬 알고리즘 기수 정렬, 카운팅 정렬, 셀 정렬, 보고 정렬 버블 정렬 인접한 데이터를 비교하여 자리를 바꾸는 정렬 알고리즘 복잡도 : O(n²) 1) public sta..

연결리스트 1. 데이터를 링크로 연결해서 관리하는 자료구조 2. 자료의 순서는 정해져 있지만, 메모리상 연속성이 보장되지 않는다. Pros 1. 데이터 공간을 미리 할당할 필요가 없다. 2. 리스트의 길이가 가변적, 데이터 추가 및 삭제 용이 Cons 1. 연결 구조를 위한 별도 데이터 공간 필요 2. 연결 정보를 찾는 시간 필요 3. 데이터 추가 및 삭제 시 앞뒤 데이터의 연결 재구성 필요 구조 노드(Node) : 데이터 저장 단위 - 값과 포인터로 구성 연산 데이터 추가 : 데이터의 추가 위치(head, 중간, tail) 에 따른 연결 작업 필요 데이터 삭제 : 데이터의 삭제 위치(head, 중간, tail) 에 따른 연결 작업 필요 노드 생성 class Node { int data; Node nex..

배열 1. 많은 수의 데이터를 다룰 때 사용하는 자료구조 2. 각 데이터를 인덱스와 1:1 대응 하도록 구성 3. 데이터가 메모리 상에 연속적으로 저장된다. Pros 인덱스를 이용하여 데이터에 빠르게 엑세스 할 수 있다. arr[0] -> 'a' arr[1] -> 'b' arr[2] -> 'c' Cons 데이터의 추가 및 삭제가 번거롭다. - 미리 최대 길이를 정해서 생성해야한다. - 가변 길이 배열은 배열의 크기를 변경할 때마다 새로운 배열을 만들어야한다. - 데이터 삭제 시, 인덱스를 유지하기 위해 빈 공간을 유지한다. 1차원 배열 int[] arr = {1, 2, 3, 4, 5}; for (int item: arr) { System.out.println("item = " + item); } /* i..

자료구조 자료를 효율적으로 관리하기 위한 구조 - 관리-> 저장, 삭제, 탐색 ... 목적에 맞게 사용한 자료구조는 실행시간 단축과 메모리 용량 절감 효과가 있다. 선형 자료구조 배열 연결 리스트 스택, 큐, 데크 해시 테이블 비선형 자료구조 트리 그래프 힙 / 우선순위 큐 트라이

복잡도 (Complexity) 알고리즘 성능을 나타내는 척도 시간 복잡도 - 알고리즘의 필요 연산 횟수 공간 복잡도 - 알고리즘의 필요 메모리 Trade-off 관계 ( 시간 복잡도 - 공간 복잡도 ) 시간 복잡도 어떤 문제를 해결하기 위한 알고리즘의 필요 연산 횟수 빅오(Big - O) 표기법을 통해 나타낸다. O( 1 ). 일반적으로 1 번 연산하는 방식 // O(1) System.out.println("hello"); O( logN ). // O(logN) for (int i = 1; i < 16; i*=2) { System.out.println("hello"); } /* hello hello hello hello */ log2의 16은 4니깐, 4번 출력된다. O( N ). // O(N) for ..

제곱, 제곱근, 지수 제곱 System.out.println(Math.pow(2,3)); // 8.0 System.out.println(Math.pow(2,-3)); // 0.125 System.out.println(Math.pow(-2,-3)); // -0.125 System.out.println(Math.pow(2,30)); // 1.073741824E9 System.out.printf("%.0f\n", Math.pow(2,30)); // 1073741824 제곱근 System.out.println(Math.sqrt(16)); // 4 System.out.println(Math.pow(16,1.0/2)); // 4 System.out.println(Math.pow(16,1.0/4)); // 2 절대값..