![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmRe8c%2FbtszXKodJvq%2F3WQVlGH6pVZ58DaxAmmLg1%2Fimg.png)
[순서도] 기초플젝2 - 순서도 그리기 연습
2023. 11. 11. 17:54
Information Technology/Algorithm
소스코드 public class Main { public static void main(String[] args) { printSalary(10000, 160); printSalary(15000, 175); printSalary(9000, 180); printSalary(13000, 190); } // 시급과 일한 시간을 입력받아, 주급을 출력 public static void printSalary(int wage, int hours) { // 최저 시급 체크 if (wage 180) { System.out.println("[에러] 근무..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdYasJ%2Fbtsv7wVBDMt%2FkDPTqxizqhkhwyYkBQkTn0%2Fimg.png)
[Algorithm] 이진 탐색 트리
2023. 9. 29. 23:18
Information Technology/Algorithm
이진 탐색 트리: Binary Search Tree - 각 노드는 유일한 키를 가지고 있음 (distinct keys) - 왼쪽 서브 트리에 있는 키들은 모두 루트 노드의 키보다 작음 - 오른쪽 서브 트리에 있는 키들은 모두 루트 노드의 키보다 큼 - 왼쪽 서브트리와 오른쪽 서브트리도 이진 탐색 트리 4, 5는 루트노드인 6보다 작음 7은 루트노드인 6보다 큼 71은 누트노드인 23보다 큼 50은 루트노드인 71보다 작음 (왼쪽에 위치해있기 때문) 6은 루트노드인 15보다 작고, 23은 큼 BST:: SEARCH(V): if this == null return null else if this key == search value return this else if this key < search value..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdttMRy%2FbtstvPcmVgI%2FUh7vZFx63nbE0wHEvzCfe0%2Fimg.png)
[Algorithm] 이진 트리의 재구성
2023. 9. 9. 15:12
Information Technology/Algorithm
이진 트리: Binary Tree - 루트 노드와 두 개의 서브 트리로 구성되는 노드들의 집합 공집합은 이진 트리 서브트리도 이진 트리 (재귀적으로 정의) 왼쪽 서브 트리와 오른쪽 서브 트리는 서로소 (disjoint) 서로소: 여러 개의 수들 사이에 1 이외의 공약수가 없음 (서로 겹치는 소인수가 없음) 공집합이 이진 트리가 되는 이유 - 루트 노드가 있지만 서브 트리가 null일 경우에도 '서브트리도 이진 트리'라는 조건에 만족하기 위해 '공집합도 이진 트리'라고 해야 함 - 두 개의 노드만을 자식 노드로 갖는 이진 트리의 규칙을 벗어나지 않도록 만들어주기 위함 이진 트리의 순회: Binary Tree Traversal 전위 순회 (Preorder Traversal): 루트 노드 먼저 방문 (V L ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcVEBo%2FbtstrRIxQUS%2F4JZG1GCtpqClCR4a0KKePK%2Fimg.png)
[Algorithm] 트리 (Tree)
2023. 9. 9. 14:33
Information Technology/Algorithm
트리 (Tree) - 계층적 관계를 표현하는 자료 구조 - 단순한 데이터의 저장을 넘어서, 데이터의 표현을 위한 도구 트리 용어 정리 노드 (Node) 트리의 구성 요소에 해당하는 A, B, C, D, E, F와 같은 요소 간선 (Edge) 노드와 노드를 연결하는 선 루트 노드 (Root Node) 트리 구조에서 최상위에 존재하는 노드 (사진에서 A에 해당) 단말 노드 (Terminal Node) 아래로 다른 노드가 연결되어 있지 않은 노드 (사진에서 C, D, E, F에 해당) 내부 노드 (Internal Node) 단말 노드를 제외한 모든 노드 (A, B와 같은 노드) 트리 노드간 관계 - 노드 A는 노드 B, C, D의 부모 노드(Parent Node) - 노드 B, C, D는 노드 A의 자식 노드..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcFlBX%2FbtsrR6UjvdH%2Fi6Lfkk67YSDjhCk2Y6uFo1%2Fimg.png)
[Algorithm] 요세푸스 문제 - 1, 2
2023. 8. 23. 00:33
Information Technology/Algorithm
백준 1179번 문제 - 마지막 요세푸스 https://www.acmicpc.net/problem/1179 - N명의 사람들은 원탁에 둘러 앉아서 시계 방향으로 1번부터 N번까지 번호 부여 받음 - N보다 작거나 같은 K를 정하고, 1번부터 순서대로 K번째 사람 제외시킴 - (N - 1)명이 제외될 때까지 시계 방향으로 K번째 사람을 제외시킴 - 임의의 두 자연수 N과 K ( int: q = [i for i in range(1, n + 1)] while len(q) > 1: # q의 길이가 1보다 크면 1이 될 때까지 반복 for j in range(1, k + 1): friend = q.pop(0) if j != k:# j가 k번째가 아니라면 q.append(friend) # 요소를 다시 Queue의 ..