본문 바로가기

반응형

DEVELOPER/DS & Algorithms

(41) PORTFOLIO GITHUB 방명록
[백준] 서로 다른 나머지 개수 구하기_3052_자바 DEVELOPER/DS & Algorithms / 2022. 1. 30. 3052번 Java-서로 다른 나머지 개수 구하기 먼저 이 문제의 분류는 입니다. 해당 분류는 타 분류에 비해 낮은 단계에 속합니다. 그럼에도 불구하고, 이 문제를 푸는데 상당히 애먹었습니다. 결국 검색을 통해 해답을 알게 되었습니다. 놀라웠던 것은 이 문제를 푸는데 다양한 방법이 있다는 것입니다. 따라서 그 방법들을 정리하고 이해하기 위해서 이렇게 올립니다. https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 1. 문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지이다. 예를 들어, 7, 14, 2..
[알고리즘] 정렬 알고리즘 정리 DEVELOPER/DS & Algorithms / 2022. 1. 10. 03. 정렬 알고리즘 정렬 알고리즘(Sorting algorithm)이란, 원소들을 번호순이나 사전 순서와 같이 일정한 순서대로 열거하는 알고리즘입니다. 수들을 정렬할 때는 크게 오름차순, 내림차순으로 정렬을 진행합니다. 오름차순(ASC): 어센딩 정렬 ex) 1,2,3,4,5,.. 내림차순(DESC): 디센딩 정렬 ex) 10,9,8,7,6.... 정렬 알고리즘의 종류 ASC 또는 DESC로 수들을 정렬하기 위해서 다양한 방법들이 있습니다. 버블 정렬 삽입 정렬 선택 정렬 퀵 정렬 병합 정렬 힙 정렬 1) 버블 정렬(Bubble Sort) 두 개씩 비교하며, 정렬하는 방식 수행 시간 O(N^2) 버블 정렬은 위 사진과 같이 숫자를 두 개씩 비교하며 정렬하는 방식입니다. 처음부터 끝까지 비교를 하면, 제..
[알고리즘] 이진 탐색(Binary search)을 통해 수 찾기 DEVELOPER/DS & Algorithms / 2022. 1. 6. 02. 정렬된 수에서 하나의 수의 위치 찾기 1) 문제정의 여러개의 수가 정렬된 순서로 있을 때 특정한 수를 찾는 방법 * 83의 위치를 찾아보세요 2) 수의 예 [12, 25, 31, 48, 54, 66, 70, 83, 95, 108] 3) 해결 package fastCampus.arg02; public class BinarySearchProblem { public static void main(String[] args) { int[] numbers = {12, 25, 31, 48, 54, 66, 70, 83, 95, 108}; int target = 83; // 찾을 숫자 //int target = 88; int left = 0; int right = numbers.length-1; int mid =..
[알고리즘] 최솟값, 최댓값 구하기 DEVELOPER/DS & Algorithms / 2022. 1. 2. 01. 나열된 수에서 최솟값과 최댓값 구하기 1) 문제 정의 여러 개의 수가 배열에 있을 때 그중 가장 큰 값과 작은 값을 찾고 해당 위치 구하기 단, 반복문은 한번만 사용 2) 수의 예 [10, 55, 23, 2, 79, 101, 16, 182, 30, 45] 3) 해결 public class MinMaxProblem { public static void main(String[] args) { int[] numbers = {10, 55, 23, 2, 79, 101, 16, 182, 30, 45}; int min = numbers[0]; // 초기값 설정 : 배열 numbers 안에서 0번째 int max = numbers[0]; // 초기값 설정 : 배열 numbers 안에서 0번째 int minPos..
자료구조(Data Structure)란 DEVELOPER/DS & Algorithms / 2021. 4. 30. 자료구조란 무엇인가? (Data Structure) 프로그램에서 사용할 많은 데이터를 메모리 상에서 관리하는 여러 구현방법들 효율적인 자료구저가 성능 좋은 알고리즘의 기반이 됨 자료의 효율적인 관리는 프로그램의 수행속도와 유지보수에 밀접한 관련이 있음 여러 자료 구조 중에서 구현하려는 프로그램에 맞는 최적의 자료구조를 활용해야 하므로 자료구조에 대한 이해가 중요함 자료구조의 종류 선형 자료구조 배열(Array) 연결 리스트(LinkedList) 스택(Stack) 큐(queue) 비선형 자료구조 트리(Tree) - 힙(heap) - 이진 트리(binary tree) - 이진 검색 트리(binary search tree) 그래프(Graph) 해싱(Hashing) 체이닝

반응형