본문 바로가기

분류 전체보기178

[자료구조] Binary Tree의 3가지 순회방법 [자료구조 알고리즘] 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. 오른쪽으로 가서 더이상 차일드 노드가.. 2022. 9. 20.
[자료구조] Tree의 종류 [자료구조 알고리즘] Tree의 종류 본 포스팅은 위의 영상을 정리한 글로 개인 공부를 목적으로 작성되었습니다. 들어가기 전에 자료구조가 어떻게 분류되는지 먼저 생각하기! Tree란 그동안 우리가 배운 Array, Linked List, Stack, Queue 는 라인처럼 생긴 일직선 데이터 구조(linear)이다. 하지만 트리는 부모, 자식 구조를 가진 구조로 계층이 있고 그룹이 있다. 어떻게 이게 가능한가? 노드가 하나 이상의 차일드를 갖기 때문이다. 트리의 노드 중에는 부모를 아는 경우도 있고 자식만 아는 경우도 있고 어떤 특정한 순서에 의해서 데이터가 관리되는 경우도 있고 데이터가 섞여있는 경우도 있다. 참고로 트리의 맨 끝에 더이상 자식이 없는 노드를 leaf라고 부른다. 종류 1. 이진트리(B.. 2022. 9. 20.
[백준] 2581 - 소수 (Java) 에라토스테네스의 체 에라토스테네스가 발견한 소수를 찾는 방법! 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다. 그림에서 회색 사각형으로 두른 수들이 여기에 해당한다. 2는 소수이므로 오른쪽에 2를 쓴다. (빨간색) 자기 자신을 제외한 2의 배수를 모두 지운다. 남아있는 수 가운데 3은 소수이므로 오른쪽에 3을 쓴다. (초록색) 자기 자신을 제외한 3의 배수를 모두 지운다. 남아있는 수 가운데 5는 소수이므로 오른쪽에 5를 쓴다. (파란색) 자기 자신을 제외한 5의 배수를 모두 지운다. 남아있는 수 가운데 7은 소수이므로 오른쪽에 7을 쓴다. (노란색) 자기 자신을 제외한 7의 배수를 모두 지운다. 위의 과정을 반복하면 구하는 구간의 모든 소수가 남는다. 위에서는 2~120 구간에서 소수를 구하니.. 2022. 9. 19.
[알고리즘] 빅오 표기법(Big-O notation) 이해하기 알고리즘 알고리즘의 효율성을 판단하는 기준은 다음과 같다. 시간 복잡도(time complexity) : 얼마나 빠르게 결과를 출력하는가? (연산을 할 때 거치는 단계의 수) 공간 복잡도(space complexity) : 메모리를 얼마나 사용하는가? 효율성을 판단하는 표기법은 총 세 가지이다. 1. 빅오 표기법 "이것보단 더 나쁠 순 없어"와 같이 최악일 때의 성능을 판단해서 평균과 가까운 성능으로 예측한다. (상한) 2. 빅오메가 표기법 "이것보단 더 좋을 순 없어"와 같이 최상일 때의 성능을 판단해서 예측한다. (하한) 3. 빅세타 표기법 평균적인 성능을 판단한다. 왜 Big-O 표기법을 사용할까? 시간 복잡도를 읽기 쉽고 빠르게 파악할 수 있게 해주기 때문이다. 어떤 알고리즘을 선택해야 할 때 알.. 2022. 9. 19.
[백준] 2839 - 설탕 배달 (Java) [백준] 2839번 : 설탕 배달 - JAVA [자바] https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만 st-lab.tistory.com *해당 포스팅은 상단에 링크된 포스팅을 바탕으로 개인 공부 목적을 위해 작성되었으므로 자세한 내용은 위 링크를 확인해 주시기 바랍니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String.. 2022. 9. 18.
[백준] 2775번 - 부녀회장이 될테야 (Java) [백준] 2775번 : 부녀회장이 될테야 - JAVA [자바] https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다. (1 2022. 9. 18.