[Java/알고리즘] 선형 탐색(Linear Search) 이해하기
·
Java/알고리즘 & 자료구조
해당 글에서는 알고리즘 중 선형 탐색에 대해 이해를 돕기 위해 작성한 글입니다.   1) 선형 탐색(Linear Search)💡 선형 탐색(Linear Search) 이란?- 배열이나 리스트의 ‘처음부터 끝까지 하나씩 값을 비교하면서 찾는 값을 찾을 때’까지 탐색하는 방법입니다.- 선형 탐색의 경우 '정렬이 되지 않은 상태'의 배열/리스트에서 값을 찾기 위한 탐색에 사용합니다.(* 이진 탐색과 비교가 되며 정렬이 된 상태에서 사용하는 이진 탐색과 사용되는 방식이 다릅니다) [ 더 알아보기 ]💡 이진 탐색(Binary Search) 란?- ‘정렬된 배열’에서 ‘특정 값’을 찾는 알고리즘을 의미합니다.- 해당 탐색 방식은 정렬이 된 배열에서 사용이 됩니다.  💡 [참고] 아래의 글을 참고하시면 이진탐색..
[Java/알고리즘] 이진 탐색(Binary Search) 이해하기
·
Java/알고리즘 & 자료구조
해당 글에서는 알고리즘 중 이진/이분 탐색에 대해서 이해를 돕기 위해 작성한 글입니다.  1) 이진 탐색(Binary Search)💡 이진탐색(Binary Search)이란?- ‘정렬된 배열’에서 ‘특정 값’을 찾는 알고리즘을 의미합니다.- 이진탐색은 ‘탐색 범위를 절반씩 줄여’나가기 때문에 선형탐색에 비해 빠른 속도를 보장합니다. 하지만 ‘배열이 정렬되어 있어야 한다는 조건’이 필요하기 때문에 배열이 정렬되어 있지 않은 경우에는 정렬 작업이 필요합니다. [ 더 알아보기 ]💡 선형탐색(Linear Search) 이란?- 배열(Array)이나 리스트(List)와 같은 데이터 구조에서 특정한 값을 찾는 알고리즘 중 하나입니다. 1. 이진탐색 과정1. 배열의 ‘중간 값’을 선택하여 찾고자 하는 값과 비교합..
[Java/알고리즘] 시간 복잡도, 공간 복잡도, 빅오 표기법 이해하기
·
Java/알고리즘 & 자료구조
해당 글에서는 효율적인 알고리즘에 대한 설계 및 구현방법과 관련된 시간 복잡도와 공간 복잡도를 이용하며 이를 표기하는 빅오 표기법에 대해서 이해를 돕기 위해 작성한 글입니다. 1) 시간 복잡도(Time Complexity)💡 시간 복잡도(Time Complexity) - 알고리즘이 실행될 때 필요한 ‘입력 값’과 ‘연산 수행 시간’에 따라 ‘효율적인 알고리즘’을 나타내는 척도를 의미합니다. - 즉, 입력 값이 커질수록 알고리즘의 수행 시간이 어떻게 증가하는지에 따른 지표를 의미합니다. - 시간 복잡도는 ‘빅오 표기법(Big-O notation)’를 통해 표현하며, ‘수치가 작을수록 효율적인 알고리즘’을 의미합니다. 2) 공간 복잡도(Space Complexity)💡 공간 복잡도(Space Complexi..
[Java/자료구조] 선형구조 - 스택(Stack), 큐(Queue) 이해하기 -2 : 문제로 이해하기
·
Java/알고리즘 & 자료구조
해당 글에서는 스택 / 큐에 대해서 다양한 문제를 통해서 이해를 돕기 위해 작성한 글입니다. 💡 스택과 큐에 대한 상세한 이론에 대해서 공부를 하고 싶으시면 아래의 링크를 참고하시면 크게 도움이 됩니다 [Java/자료구조론] 선형구조 이해하기 : 큐(Queue), 스텍(Stack), 덱(Deque)해당 글에서는 자료구조론 중 선형 구조인 큐(Queue)와 스택(Stack), 덱(Deque)에 대해서 이해하고 언제 사용하며 각각의 장단점이 무엇인지에 대해 알아보기 위한 글입니다. 1) 선형 구조(Linear) 💡 선adjh54.tistory.com [Java] Collection Framework(Queue, Stack, Deque)의 인터페이스와 구현체 이해하기 -2 : 정의 및 예시해당 글에서는 컬렉션..
[Java/알고리즘] 피보나치 수열(Fibonacci numbers) : 경우의 수
·
Java/알고리즘 & 자료구조
해당 글에서는 피보나치의 수열에 이해하고 이를 이용하여 경우의 수를 계산하는 활용방법에 대해서 확인해 봅니다. 1) 피보나치 수열(Fibonacci numbers)💡 피보나치 수열(Fibonacci numbers) 이란? - ‘이전 두 항의 합이 다음 항이 되는 수열’을 의미합니다. - 즉, 첫째 항과 둘째 항이 1이고 이후 모든 항은 모든 항은 바로 앞 두항의 합으로 이루어지는 수열을 의미합니다. - 피보나치 수열의 예로는 [1, 1, 2, 3, 5, 8, 13, 21, 34,...]과 같은 형태로 구성이 됩니다. 1. 피보나치 수열 계산식💡 피보나치 수열의 연산식 F(N) = F(N-1) + F(N-2)입니다. F(0) = 0, F(1) = 1 일 때 F(n) = F(n-1) + F(n-2) (n ≥..
[Java/알고리즘] 유클리드 호제법(Euclidean Algorithm) : 최대공약수, 최소공배수
·
Java/알고리즘 & 자료구조
해당 글에서는 유클리드 호제법에 대해 이해하고 최대공약수와 최소공배수에서 이를 활용할 수 있는 방법에 대해 공유합니다. 1) 유클리드 호제법(Euclidean Algorithm)💡 유클리드 호제법/알고리즘(Euclidean Algorithm) - 두 수의 '최대공약수(GCD)'를 찾기 위한 알고리즘을 의미합니다. - 큰 수를 작은 수로 나누어 떨어지게 한 뒤, 수를 반복적으로 수행하여 나머지 0이 될때까지 작동하는 방법을 의미합니다.이때 작은 수가 최대공약수입니다. [ 더 알아보기 ] 💡 호제법이란? - 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘을 의미합니다.유클리드 호제법 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 유클리드 호제법(-互除法, Euclid..
[Java/자료구조] 선형구조 - 큐(Queue), 스택(Stack), 덱(Deque) 이해하기 - 1
·
Java/알고리즘 & 자료구조
해당 글에서는 자료구조론 중 선형 구조인 큐(Queue)와 스택(Stack), 덱(Deque)에 대해서 이해하고 언제 사용하며 각각의 장단점이 무엇인지에 대해 알아보기 위한 작성한 글입니다. 💡 [참고] 자료구조의 전체 구조 - 해당 글에서는 선형 구조 >> 스택, 큐, 덱에 대해 알아봅니다. 1) 선형 구조(Linear Structure) 💡 선형 구조(Linear Structure) - 데이터를 저장하기 위한 기본적인 형태로 데이터가 '일렬로 나열'되어 있을 뿐만 아니라 데이터 간에 순서가 있고 논리적으로 이어져 있는 구조를 의미합니다. - 선형구조에는 큐(Queue), 스택(Stack), 덱(deque)이 있습니다. - 큐는 선입선출(FIFO, First-In-First-Out)의 특성을 가지며 스..