[백준] 2750 - 수 정렬하기 (Java)
·
Computer Science/Algorithm
[백준] 2750번 : 수 정렬하기 - JAVA [자바] www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 st-lab.tistory.com *해당 포스팅은 상단에 링크된 포스팅을 바탕으로 개인 공부 목적을 위해 작성되었으므로 자세한 내용은 위 링크를 확인해 주시기 바랍니다. 1. 선택정렬 첫 번째 인덱스부터 시작해서 뒤의 인덱스들과 값을 비교하여 최소값들을 앞 순서로 보내는 방법. 시간 복잡도는 O(n²)이다. import java.io.BufferedReader; import java.io.IOExcepti..
[백준] 9020 - 골드바흐의 추측 (Java)
·
Computer Science/Algorithm
[백준] 9020번 : 골드바흐의 추측 - JAVA [자바] https://www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때 st-lab.tistory.com *해당 포스팅은 상단에 링크된 포스팅을 바탕으로 개인 공부 목적을 위해 작성되었으므로 자세한 내용은 위 링크를 확인해 주시기 바랍니다. 선생님(모르는 제자가 하나 생기신)이 저번에 알려주신 골드바흐의 추측이 문제로 나왔다. 댓글에 나랑 비슷하게 생각하신 분이 계셨다. 진짜 나는 여기서 한 번 더 배워간다. 선생님은 천재다. import java.io.BufferedReade..
[자료구조] Graph 개념과 DFS, BFS
·
Computer Science/Data Structure
[자료구조 알고리즘] 그래프(Graph)에 대해서 [자료구조 알고리즘] Graph 검색 DFS, BFS 구현 in Java 본 포스팅은 위의 영상들을 정리한 글로 개인 공부를 목적으로 작성되었습니다. Graph란 정점(vertex)와 edge(정점과 정점을 연결하는 간선)으로 구성된 한정된 자료구조이다. 만약 이전에 배웠던 트리가 루트도 없고 자식도 없고 방향성이 없어진다면 뭐가 될까? 그게 바로 그래프이다. 사실 트리는 그래프의 한 형태로 단지 사이클이 없고 방향이 정해져있다는 조건이 있는 상태인 것이다. Graph의 특성 1. Directed VS Undirected 그래프는 방향이 있을 수도 있고 없을 수도 있다. 방향이 있는 그래프는 Directed Graph, 없는 그래프는 Undirected ..
[자료구조] Binary Tree의 3가지 순회방법
·
Computer Science/Data Structure
[자료구조 알고리즘] Binary Tree의 3가지 순회방법 구현하기 본 포스팅은 위의 영상을 정리한 글로 개인 공부를 목적으로 작성되었습니다. Binary Tree의 3가지 순회방법 바이너리 트리를 판단하면서 트리의 모든 데이터를 가져오는 방법에는 세 가지가 있다. - Inorder(Left -> Root -> Right) - Preorder(Root -> Left -> Right) - Postorder(Left -> Right -> Root) 예제 Inorder (Left, Root, Right) : 4 2 5 1 3 1. 루트 노드를 시작으로 왼쪽으로 먼저 향한다. 2. 더 이상 차일드 노드가 없는 4를 출력한다. 3. 왼쪽 다음 root인 2을 출력한다. 4. 오른쪽으로 가서 더이상 차일드 노드가..
[자료구조] Tree의 종류
·
Computer Science/Data Structure
[자료구조 알고리즘] Tree의 종류 본 포스팅은 위의 영상을 정리한 글로 개인 공부를 목적으로 작성되었습니다. 들어가기 전에 자료구조가 어떻게 분류되는지 먼저 생각하기! Tree란 그동안 우리가 배운 Array, Linked List, Stack, Queue 는 라인처럼 생긴 일직선 데이터 구조(linear)이다. 하지만 트리는 부모, 자식 구조를 가진 구조로 계층이 있고 그룹이 있다. 어떻게 이게 가능한가? 노드가 하나 이상의 차일드를 갖기 때문이다. 트리의 노드 중에는 부모를 아는 경우도 있고 자식만 아는 경우도 있고 어떤 특정한 순서에 의해서 데이터가 관리되는 경우도 있고 데이터가 섞여있는 경우도 있다. 참고로 트리의 맨 끝에 더이상 자식이 없는 노드를 leaf라고 부른다. 종류 1. 이진트리(B..
[백준] 2581 - 소수 (Java)
·
Computer Science/Algorithm
에라토스테네스의 체 에라토스테네스가 발견한 소수를 찾는 방법! 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다. 그림에서 회색 사각형으로 두른 수들이 여기에 해당한다. 2는 소수이므로 오른쪽에 2를 쓴다. (빨간색) 자기 자신을 제외한 2의 배수를 모두 지운다. 남아있는 수 가운데 3은 소수이므로 오른쪽에 3을 쓴다. (초록색) 자기 자신을 제외한 3의 배수를 모두 지운다. 남아있는 수 가운데 5는 소수이므로 오른쪽에 5를 쓴다. (파란색) 자기 자신을 제외한 5의 배수를 모두 지운다. 남아있는 수 가운데 7은 소수이므로 오른쪽에 7을 쓴다. (노란색) 자기 자신을 제외한 7의 배수를 모두 지운다. 위의 과정을 반복하면 구하는 구간의 모든 소수가 남는다. 위에서는 2~120 구간에서 소수를 구하니..