user-thumbnail
@jakeseo_me
대전에 있는 (주) 아이와즈에서 풀스택 웹개발자로 일하고 있는 서진규입니다. JS는 Jake Seo의 Abbreviation이며 가장 관심이 많은 분야입니다.
SERIES

java algorithm study

Algorithm Study With Java #1 (JAVA IO)

2019년 2월 11일

알고리즘 풀이에 Java를 쓰게 된 이유 요즘 다시 한번 알고리즘을 공부하려 하는 중이다. 알고리즘을 공부할 때 항상 나에게 문제로 다가왔던 것은 언어의 선택인데 실제 내 BOJ 기록을 보면 C++, Python, Java를 고루 사용하여 문제를 풀었다. 하지만 이제 하나의 언어로 정착할 필요성을 느껴 하나의 언어를 정하려고 한다. 알고리즘 문제를 풀...

Algorithm Study With Java #2 (JAVA COLLECTIONS)

2019년 2월 11일

Collections의 의미와 종류 - Collections란? - 자주 쓰는 자료구조로 이미 Java 언어 내부 Collections에 구현되어 있음 - Collections의 종류는? - Vector - Deque - List - Set - Map - Stack - Queue - ... ArrayList (java.util.Ar...

Algorithm Study With Java #3 (JAVA SORT)

2019년 2월 12일

정렬 - 배열 정렬 - Arrays.sort - 콜렉션 정렬 - Collections.sort 오름차순 정렬하기 - ArrayList를 이용하는 방법 - 예제 코드 Comparable과 Comparator의 의미 - Comparable은 compareTo를 구현하는데, natural순서를 정의한다. - natural순서란 이를테...

Algorithm Study With Java #4 (JAVA BigInteger)

2019년 2월 12일

BigInteger (java.math.BigInteger) - 매우 큰 숫자를 의미하는 것 - int의 표현 범위 - -2^31 ~ 2^31 -1 - long의 표현 범위 - -2^63 ~ 2^63 -1 - int와 long의 범위를 넘어가는 경우? - BigInteger를 직접 구현하는 방법 - Java를 사용하지 않는 방법 - Python은 정...

Algorithm Study #1 (Algorithm and IO)

2019년 2월 13일

알고리즘(Algorithm)이란 무엇인가? - In mathematics and computer science, an algorithm is a self-contained step-by-step set of operations to be performed. - 알고리즘이란 어떤 문제를 해결하기 위한 여러 동작들의 모임이다. - https://en.wikip...

Algorithm Study #2 (Data Structure-1)

2019년 2월 13일

스택 - 한쪽 끝에서만 자료를 넣고 뺄 수 있는 자료구조 - 마지막으로 넣은 것이 가장 먼저 나오기 때문에 Last In First Out (LIFO)라고도 한다. - push: 스택의 가장 위에 자료를 넣는 연산 - pop: 스택의 가장 위의 자료를 빼는 연산 - top: 스택의 가장 위의 자료를 보는 연산 - empty: 스택이 비어있는지 아닌지를 알아...

Algorithm Study #2 (Data Structure-1.2)

2019년 2월 14일

큐 (Queue) - 한쪽 끝에서만 자료를 넣고 다른 한쪽 끝에서만 뺄 수 있는 자료구조 - 먼저 넣은 것이 가장 먼저 나오기 때문에 First In First Out (FIFO) 라고도 한다. - 큐의 주요 메소드 - push - 큐에 자료를 넣는 연산 - pop - 큐에서 자료를 빼는 연산 - front - 큐의 가장 앞에 있는 자료를 보는 연산...

Algorithm Study #3 (Dynamic Programming (DP) - 1.1)

2019년 2월 16일

다이나믹 프로그래밍 1 - 큰 문제를 작은 문제로 나눠서 푸는 알고리즘 - Dynamic Programming의 다이나믹은 아무 의미가 없다. - 동적 계획법으로 번역하여 이해하면 오히려 방해가 될 수 있다. - 이 용어를 처음 사용한 140년 Richard Bellman은 멋있어 보여서 사용했다고 한다. - https://en.wikipedia.org...

Algorithm Study #3 (Dynamic Programming (DP) - 1.2)

2019년 2월 16일

DP문제풀이 1 - 1로 만들기 - 1로 만들기, boj.kr/1463 - 세준이는 어떤 정수 N에 다음과 같은 연산 중 하나를 할 수 있다. 1. N이 3으로 나누어 떨어지면 3으로 나눈다. 2. N이 2로 나누어 떨어지면 2로 나눈다. 3. 1을 뺀다. - 세준이는 어떤 정수 N에 위와 같은 연산을 선택해서 1을 만드려고 한다. - 연산을 사용하는 ...

Algorithm Study #3 (Dynamic Programming (DP) - 1.3)

2019년 2월 18일

이친수 - boj.kr/2193 - 이진수에서 특별한 속성이 추가됨 1. 0으로 시작하지 않는다. 2. 1이 두번 연속으로 나타나지 않는다. - 이를테면 1, 10, 100, 101, 1000, 1001이 이친수 - 0010101이나 101101은 각각 1,2 번 규칙에 위배되므로 이친수가 아니다. - 케이스 분할 - n번째 자리에 0이 온 경우 - ...

Algorithm Study #4 (Mathematics)

2019년 2월 25일

나머지 연산 - (A+B) % C = ( (A%C) + (B%C) ) % C - DP문제에서 경우의 수가 너무 큰 경우에 주로 사용한다. - BigInteger의 구현보다 n으로 나눈 나머지를 출력하라는 경우가 매우 많다. - 예시 - (A+B) % C = ( (A%C) + (B%C) ) % C - A = qsub1/subc+rsub1/sub - B ...

Algorithm Study #4 (Mathematics-2)

2019년 3월 6일

Prime number - Prime Number: whole number greater than 1 whose only factors are 1 and itself. - A factor is a whole numbers that can be divided evenly into another number. - To make N a prime number,...

Algorithm Study #5 (Sort)

2019년 3월 8일

Sort - there are a lot of sort algorithms - selection, bubble, insertion, quick, heap and merge sort ... - use sort algorithm which has time complexity of O(NlgN) - it's better to use sort in STL than...

Algorithm Study #5 (Sort And Its Application)

2019년 3월 9일

Card - boj/11652 - Junkyu has cards which contain a number between -2^62 and 2^62 - Which kind of card does Junkyu have the most? - It can be solved after sorted - After sorting cards, it can be solve...

Algorithm Study #6 (Graph_Concept)

2019년 3월 12일

Graph ImageOfGraph.png - it's a type of datastructure - it has Node and Vertex(정점), Edge(간선) - Vertex and Node mean same thing. Circled ones in the image. - Edge means lines connecting circles. - T...

Algorithm Study #6 (Graph_Expression_How_To_Save_Graph)

2019년 3월 12일

Representation of Graph Graph_Expression1.png - in case of this graph, it has 6 vertices and 8 edges - it doesn't have direction so it is undirected graph - vertices : {1, 2, 3, 4, 5, 6} - edges : {(1...

Algorithm Study #6 (Graph Search)

2019년 3월 14일

Search of Graph - There are two kinds of way to search graph - DFS and BFS - DFS - Depth First Search Algorithm - Search graph as deeply and many as it can - It uses Stack - BFS - Breadth First S...

Algorithm Study #6 (Graph Problem Solving)

2019년 3월 15일

Connected Component connectedcomponent1.png - It is possible that graphs are divided into few pieces - like this, if graphs are separated, it is called connected component - There should be path to co...