전체 글(189)
-
[자료구조] 정렬(Sorting)
정렬(Sorting)이란?정의: 데이터를 특정 기준에 따라 순서대로 나열하는 과정장점:- 검색과 탐색 속도 향상- 데이터 구조 내에서 일관성을 유지정렬 방식- 오름차순(Ascending Order)- 내림차순(Descending Order)정렬 알고리즘의 분류1. 비교 기반 정렬(Comparison Sort)데이터를 비교하며 정렬버블 정렬, 삽입 정렬, 선택 정렬, 퀵 정렬, 병합 정렬2. 비교 비기반 정렬(Non-Comparison Sort)데이터를 비교하지 않고 정렬계수 정렬, 기수 정렬버블 정렬(Bubble Sort)정의: 인접한 두 원소를 비교하여 교환하는 방식으로 정렬. 가장 큰 값이 반복적으로 뒤로 이동특징- 단순한 정렬 알고리즘- 정렬이 거의 되어 있는 경우 유리시간 복잡도- 최선: O(n)..
2024.12.03 -
[JAVA] 백준 9단계 약수, 배수와 소수
5086 배수와 약수나의 답) 100msimport java.io.*;import java.util.*;class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; StringBuilder sb = new StringBuilder(); while(true) { st = new StringTokenizer(br.readLine()); int a = Integer.p..
2024.11.30 -
[자료구조] 스택과 큐(Stack & Queue)
스택(Stack)과 큐(Queue)스택과 큐는 데이터를 저장하고 처리하는 기본적인 자료구조로, 각기 다른 데이터 처리 방식과 특징을 가진다.스택(Stack)스택이란?정의: 데이터를 후입선출(LIFO, Last In First Out) 방식으로 처리하는 자료구조구조:- 데이터를 넣는 작업: push- 데이터를 꺼내는 작업: pop- 가장 위의 데이터를 확인하는 작업: peek 또는 top스택의 특징후입선출(LIFO): 마지막에 삽입된 데이터가 가장 먼저 제거된다.한쪽 끝에서만 삽입과 삭제가 가능하다.스택의 활용 예시1. 괄호 검사: 수식의 괄호가 올바르게 닫혔는지 확인2. DFS(깊이 우선 탐색): 그래프 탐색 시 경로를 추적3. 백트래킹: 잘못된 경로를 되돌아갈 때4. 호출 스택(Call Stack): ..
2024.11.30 -
[자료구조] 재귀(Recursion)
재귀(Recursion)란?함수가 자기 자신을 호출하여 문제를 해결하는 기법이다. 일반적으로 재귀 함수는 두 가지 구성 요소를 가진다.기본 조건(Base Case): 재귀 호출을 종료시키는 조건재귀 조건(Recursive Case): 함수가 자기 자신을 호출하는 조건특징문제를 작은 단위로 나누어 해결한다.함수 호출 과정에서 스택 메모리를 사용한다.무한 재귀 호출이 발생하면 스택 오버플로우(Stack Overflow)가 발생할 수 있다.장단점장점- 코드가 간결하여 가독성이 높다.- 트리나 그래프 탐색과 같은 계층적 문제 해결에 적합하다.단점- 반복적으로 호출되므로 성능이 떨어질 수 있다.- 스택 메모리를 과도하게 사용할 경우 문제가 발생한다.재귀 함수의 구조void recursiveFunction(매개변수..
2024.11.29 -
[자료구조] 배열 & 연결리스트(Array & LinkedList)
배열과 연결 리스트배열과 연결 리스트는 데이터를 저장하고 관리하는 데 사용되는 기본적인 자료구조이다.배열(Array) 배열(Array)이란?배열이란 동일한 데이터 타입을 가진 원소들이 연속적으로 배치된 자료구조이다. 특징고정된 크기를 가지며, 크기 변경이 어렵다.인덱스를 사용하여 원소에 빠르게 접근할 수 있다. 이때, 원소에 대한 접근 속도는 O(1)이다.크기를 미리 정해야 하므로 필요한 크기보다 크게 잡아야 할 수 있다.(메모리 낭비 가능성)장단점장점- 인덱스를 이용한 빠른 접근 가능 (O(1))- 연속된 메모리 할당으로 캐시 적중률이 높음단점- 크기가 고정되어 있어 유연성이 부족함- 삽입/삭제 연산이 비효율적임 (O(n)) 시간 복잡도삽입: 특정 위치에 값을 삽입하는 경우, 기존 값들을 이동해야 하므..
2024.11.29 -
[JAVA] 백준 13단계 정렬
2750 수 정렬하기나의 답) 136msimport java.io.*;import java.util.*;class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int[] arr = new int[n]; for (int i = 0; i 다른 사람의 답1) 120msimport java.io.*;import java.util.*;class Main { pu..
2024.11.24