일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- 개발상식
- 카카오코테
- 자바
- 자료구조힙
- 자료구조 트리
- 자바문자열
- 프로그래머스
- 카카오1차
- 프렌즈4블록java
- 객체프로그래밍
- 카카오코딩테스트
- 프렌즈4블록
- 코테준비
- Java heap
- 객체프로그래밍이란
- 백준 1000번 java
- 카카오기출
- 공부정리
- java method
- 힙정렬자바
- 백준 1924번 java
- heap정렬
- 코딩테스트기출
- java
- 문자열포맷
- 백준 1924번
- 백준
- 백준 1000번
- heap
- Today
- Total
목록CS (65)
일단 시작해보는 블로그
1. Array 배열의 크기는 처음 한번 정하면 변경할 수 없다. 배열 초기화 시 메모리에 할당되어 ArrayList보다 속도가 빠르다. 논리적 저장 순서와 물리적 저장 순서가 일치한다. 따라서 인덱스로 해당 원소에 접근할 수 있다. 그렇기 때문에 찾고자 하는 원소의 인덱스 값을 알고있으면 O(1)로 원소에 접근할 수 있다. 즉, random access가 가능하다는 장점이 있다. 2. ArrayList 크기가 가변적이다. 저장하는 데이터 수에 따라서 크기가 변경된다. 데이터 추가, 삭제가 가능하지만 그마다 메모리를 재할당하기 때문에 속도가 배열보다 느리다. n개의 자료를 저장할 때 ArrayList는 자료들을 하나의 연속적인 묶음으로 묶어 자료를 저장 무작위 접근 가능 사이즈 고정되어 있음 삽입 시, ..
java, bfs로 구현한 코드 전형적인 graph응용문제였고 이에 따라 graph에 대하여 전반적으로 공부했다. IDE용 코드 package codingTest; import java.util.*; class Node{ int x; int y; Node(int x, int y){ this.x = x; this.y = y; } } public class kakao_coloringbook { static boolean[][] marked = null; static int[][] pictures = null; public static int bfs(int i, int j) { //System.out.println(marked[i][j]); int tmpPicture = pictures[i][j]; Syste..
// 방향 없는 그래프, 연결된 그래프 개수 import java.util.ArrayList; import java.util.Scanner; import java.util.Stack; import java.util.List; public class Main { static boolean[] marked = null; static List none_direction_graph = null; //재귀호출 static void dfs(int n){ marked[n] = true; // 자식노드를 linkedNodeArr에 담는다. List linkedNodeArr = none_direction_graph.get(n); for(int i=0; i
힙정렬 알고리즘은 입력받은 숫자를 최대 혹은 최소 힙 구조로 만들고 현재 값 중에 가장 큰값 혹은 작은 값을 루트로부터 추출하여 큰값부터 차례대로 뽑아 정렬문제를 해결하는 알고리즘이다. 아래 동영상이 도움이 많이 됐다아ㅏ.!!! LOGIC 1. 배열에 담기 2. max-heapify 3. 1번노드와 마지막 노드 exchange 4. 마지막 노드를 arraylist에 따로 담기, heap크기 = heap크기 -1 package data_structure; import java.util.ArrayList; // max heap! public class HeapSort { static ArrayList sortArr = new ArrayList(); static int[] swap(int[] a, int m,..
힙구조는 우선순위 큐를 위하여 만들어진 자료구조라고 한다. 자료구조 '힙(heap)' 이란? 완전 이진 트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조이다. 여러 개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 자료구조이다. 힙은 일종의 반정렬 상태(느슨한 정렬 상태)를 유지한다. 큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있다는 정도 간단히 말하면 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰(작은) 이진트리를 말한다. 힙 트리에서는 중복된 값을 허용한다. (이진 탐색 트리에서는 중복된 값을 허용하지 않는다.) 힙의 종류 최대힙 (max heap) - 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리 - key(부모노드) >= key(자식노드..
트리는 노드(자료 저장)와 간선(노드 연결)을 갖는 계층구조이다. 즉, 부모-자식(Parent-Child 관계) 1:n 관계 (여기서 1은 Root Node, n은 Root를 제외한 나머지 자식 노드 즉, n은 레벨이 1이상인 노드이다.) 트리는 응용프로그램, 알고리즘에서 자주 쓰인다. 트리의 종류 자식의 개수에 따라 binary tree : 최대 2개 자식 ternary tree : 최대 3개 부모를 기준으로 binary tree : 부모를 기준으로 노드의 숫자가 기준 없이 자유롭다. binary search tree : 부모를 기준으로 왼쪽은 부모보다 작아야하고 오른쪽은 큰 더 커야한다. complete binary tree : 레벨이 다 맞고 왼쪽부터 채워져 있는 트리 full binary tree..
뒤에서 부터 계산을 해주기 위해서 자료구조는 스택을 사용했고 점수, 등급, 보너스를 따로 저장해서 하나씩 꺼내서 계산했다. ** 처음에 rank인 S, D, T를 입력받을 때, String으로 할당했다가 오류가 났다. 그 이유는 당연히 글자 하나씩 있으면 데이터타입을 char로 생각하기 때문에 문자열 비교를 ex) char a = 'a'; char b = 'b'; a.equals(b); //노노노!!에러남 a == b 혹은 a != b 이렇게 비교해야함. package codingTest; import java.util.Stack; public class kakao_dart { public static void main(String[] args) { System.out.println(solution("1..
package string_algorithm; import java.util.Scanner; //주어진 문자를 역순으로 담기 public class StringReverse { //substring, String 변수 하나만 할당 static String solution1(String str){ //String의 substring(i-1,i) String reverse = ""; for(int i=str.length(); i>0; i--){ reverse += str.substring(i-1, i); } return reverse; } //toCharArray()사용해서 새로운 배열에 하나씩 담기 static void solution2(String str){ char[] charArr = str.toCh..