아잉후의 이야기
-
JavaSE 이론 정리면접 정리 2019. 2. 12. 06:01
Java의 공부와함께 기본적으로 알아야할 개념들?? ㅎㅎ 면접에서도 묻는 개념들 모아봤습니다. 아주 간단한 개념드롤 요약. Java SE 1. JDK / JRE / JVM ① JDK : (Java Development Kit) 자바 개발 도구 입니다. - JDK안에는 javac, javadoc 등이 포함되어 있습니다. - JDK를 설치하면 JRE가 설치되고, JRE 안에는 흔히 말하는 JVM을 있습니다. ② JRE : (Java Runtime Environment) 자바 실행 환경 입니다. - JRE는 JVM이 자바 프로그램을 동작시킬 때 필요한 라이브러리와 파일들을 가지고 있습니다. ③ JVM : (Java Virtual Machin) 자바 가상 머신 입니다. - 자바 소스로부터 만들어진 자바 바이너리..
-
유클리드 호제법에 대해 알아보자!!Algorithm 2019. 2. 11. 15:30
유클리드 호제법은 최대공약수를 구하는 알고리즘 중 하나입니다.최대공약수를 구하면 최소공배수도 구할 수 있겠죠?? ㅎㅎ간단하므로 짧게 정리!! 1. 유클리드 호제법이란? - 유클리드 호제법은 2개의 자연수 또는 정수의 최대공약수를 구할 수 있습니다. * 호제법 : 두수가 서로 상대방 수를 나누어 결국 원하는 수를 얻는 알고리즘 2. 유클리드 호제법 이해 ▶ 자연수 또는 정수 A, B에 대해 A를 B로 나눈 나머지를 R이라고 하면 A와 B의 최대 공약수는 B와 R의 최대 공약수와 같다. ① A와 B라는 두 정수가 있고, A가 B보다 큰 값이라고 가정합니다. ( A > B ) ② A를 B로 나눈 나머지가 R이라고 합니다. ( A mod B == R ) ③ R이 0이라면 최대 공약수는 B 입니다. ( A mod..
-
에라토스테네스의 체에 대해 알아보자Algorithm 2019. 2. 9. 20:04
기본적인. 소수 구하는 알고리즘익히고있자~~ 1. 에라토스테네스의 체란? - 고대 그리스 수학자 에라토스테네스가 발견한 소수를 찾는 방법입니다. * 소수란? 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수 2. 에라토스테네스의 이해 (출처 : 위키백과) ① 2부터 소수를 구하고자 하는 구간( 1 ~ 120 )을 정합니다. ② 2는 소수이므로 Prime numbers로 지정하고, 2의 배수를 모두 지웁니다. ③ 남은 수 중에서 3은 소수이므로 Prime numbers로 지정하고, 3의 배수를 모두 지웁니다. (지울 때 겹쳐지는 수는 무시하고 진행합니다. ) ④ 5, 7, 11, 등 남은 수들을 위와 같은 과정으로 반복하면 Prime numbers 을 알 수 있습니다. 3. 에라토스테네스의 구현1234..
-
크루스칼 알고리즘(Kruskal Algorithm)에 대해 알아보자!!Algorithm 2019. 2. 7. 02:00
Union-Find에 이어서 Kruskal ...익숙해지자!!Kruskal 이해하는데 https://blog.naver.com/ndb796/221230967614 님의 블로그 도움 많이 되었습니다. 1. Kruskal Algorithm 이란? - 최소 비용 신장 트리(MST)를 만들기 위한 대표적인 알고리즘입니다. - 그래프에서 가중치가 할당된 간선의 모든 정점을 비교하여 최소 비용으로 연결하여 최적 답을 구합니다. * 신장 트리(Spanning Tree) : 그래프내의 모든 정점을 포함하는 트리, n개의 정점이 가지는 최소 간선의 수는 n-1개이다. 최소 비용 신장 트리(Mininum Spanning Tree) : 간선간의 가중치를 고려하여 가장 작은 가중치의 최소 비용의 Spanning Tree를 선..
-
유니온파인드(Union-Find)에 대해 알아보자Algorithm 2019. 1. 31. 17:20
혼자 공부삼아 끄적끄적...참고한 블로그는 https://blog.naver.com/ndb796/221230967614 입니다. 좋은 내용 감사합니다. 1. Union-Find 이란? - 대표적인 그래프 알고리즘입니다. - 서로소 집합 (Disjoint-Set) 그리고 병합 찾기 집합 (Merge-Find-Set), 합집합 찾기(Union-Find) 이라고도 부릅니다. - 서로소 부분 집합들로 나눠진 원소들에 대한 정보를 저장하고 서로 같은 집합에 속하는지 판별하는 알고리즘입니다. 2. Union-Find 연산 ① 초기화 - 특정한 노드의 부모를 찾을 수 있도록 만들어 준다.1234567 int getParent(int parent[], int x) { if(parent[x]==x) { return x;..
-
퀵 정렬(Quick Sort)에 대해 알아보자Algorithm 2019. 1. 24. 13:25
알고리즘 공부를 하면서 여러 정렬에 대한 이해가 필요한데, 그중에서도 퀵정렬에 대해 알아보고자 먼저 글을 정리해보았다. 1. 퀵 정렬(Quick Sort)의 이해 - 퀵 정렬(Quick Sort)는 찰스 앤터니 리처드 호어가 개발한 정렬 알고리즘입니다. - 퀵 정렬은 분할 정복(divide-and-conquer) 전략을 사용하는 재귀 알고리즘 입니다. - 퀵 정렬 단계 ① 리스트의 여러 요소 중 하나의 *pivot을 골라 pivot보다 작은 값들은 왼쪽, 큰 값들은 오른쪽으로 보내 분할합니다. * pivot은 정렬의 기준값이 된다. ② 이후 분할된 리스트들을 재귀적으로 정복합니다. ③ 재귀적으로 정렬이 끝났다면 결합된 상태로 정렬되었습니다. 퀵 정렬(Quick Sort) 난수열에 대해 퀵 정렬을 실행한 ..
-
STL sort 사용하기,Algorithm 2019. 1. 23. 15:38
알고리즘을 하나하나 공부해가는데 sort가 정말 유용하다는 것을 새삼 느낀다.다양한 정렬하는 방식으로 사용자가 정의할 수 있고, 숫자 뿐만 아니라 대소 비교가 가능한 모든 데이터(char, string,, )를 정렬할 수 있다. 0. Algorithm - 먼저 표준 템플릿 라이브러리(STL : Standard Template Library)는 C++을 위한 라이브러리다. Algorithm 은 이 STL이 제공하는 요소 중 하나이고, Algorithm 안에서 함수 템플릿 sort 을 이용할 수 있다. 1. sort - 위와 같이 sort는 default로 2개의 인자를 필요로 합니다. 이때의 2개의 인자는 정렬하는 범위를 나타냅니다. 그리고 기본적으로 오름차순 정렬이 수행됩니다. - 또한 custom 으로..
-
Git Hub로 알고리즘 코드 관리하기!Algorithm 2019. 1. 21. 21:07
알고리즘 공부중에 코드 관리를 어떻게 할까 고민하던중에 Git Hub를 이용해보자고 생각했다. ▶Git Hub 바로가기 주소https://github.com/ - Git Hub의 공식사이트는 위와 같고, 작성한 코드는 Repository를 생성하여 관리할 수 있다. ** 저 또한 앞으로 백준에서 공부하는 코드들을 Git Hub 로 보관해볼 생각입니다. ㅎㅎ지금은 보잘 것 없지만 꾸준히 차곡차곡 관리하다보면 언젠간 ... ㅜㅜ 커질 것을 기대하며!!! ▶아잉후 Git Hub 바로가기 주소https://github.com/shs2810/Algorithm-Baekjoon.git ** 나만의 약속--> 하루에 최소 하나의 문제이상 풀기!!! ※ C와 C++의 빠른 입출력 방법1. CC의 scanf / print..