분류 전체보기 83

[쉽게 배우는 운영체제] 운영체제의 개요

운영체제에 대해 깊이있게 학습하기 위해 '쉽게 배우는 운영체제'라는 도서를 구매하였습니다. 총 챕터는 12개로 1개의 챕터를 학습할 때 마다 하나의 포스트를 작성해보겠습니다.운영체제의 개요운영체제 소개생활 속 운영체제우리는 일상에서 운영체제를 많이 경험하고 있습니다. 예를 들어 Windows와 Mac OS, Android, iOS가 있습니다. 컴퓨터는 원래 미사일 탄도를 계산하기 위해서 개발되었는데 **이를 계산기라고 부르지 않고 컴퓨터**라고 부르는 이유는 프로그래밍이 가능한 기계이기 때문입니다.범용 컴퓨터 : 웹 서핑, 문서 작성 등 다양한 작업에 사용되는 컴퓨터임베디드 컴퓨터(시스템) : 스마트 시계, 스마트 TV 등에 탑재된 컴퓨터운영체제의 정의컴퓨터는 크게 하드웨어, 소프트웨어로 구성되어지며 소..

운영체제 2025.05.03

비트마스킹

비트마스킹이번 포스트에서 정리할 주제는 비트마스킹입니다. 비트마스킹은 알고리즘 문제에서 자주 등장하는 기법 중 하나로 이진수(bit)를 활용해 여러 개의 상태를 한 개의 정수로 표현할 수 있도록 도와주며, 공간 절약과 연산 최적화 측면에서 매우 유용합니다. 예시는 다음과 같습니다.n = 5 → 101→ 0, 2번 인덱스가 켜져 있다라는 의미로 해석이 가능합니다.비트마스킹 활용 사례부분 집합을 효율적으로 순회할 때중복 방문을 피하는 DP/DFS에서 방문 여부를 저장할 때상태를 배열 대신 정수 하나로 표현하고 싶을 때메모리/성능 최적화가 필요할 때 기본 연산 정리표 연산 목적 표현식 설명 예제 입력 / 결과 예시 i번째 비트 켜기 (Set)S = S | (1 i번째 자리를 1로 설정S = 0; i = 2..

알고리즘 2025.05.02

Character, String, StringBuilder

이번 포스트에서는 Character, String, StringBuilder에 대해서 정리해보겠습니다. 해당 포스트의 카테고리를 Java, 알고리즘에서 고민을 했는데 Character, String, StringBuilder의 주요 메소드와 시간복잡도를 함께 설명할 계획이기 때문에 알고리즘 카테고리로 선정하였습니다.Character, String, StringBuilderJava에서 문자열 및 문자 데이터를 처리할 때 주로 사용하는 클래스는 다음 세 가지입니다:Character: 문자(char) 하나를 다루는 클래스String: 불변(immutable) 문자열StringBuilder: 가변(mutable) 문자열, 성능 중심Characterchar 타입을 감싸는 래퍼 클래스이며, 문자 하나를 판단하거나 ..

알고리즘 2025.05.02

HashMap vs TreeMap vs LinkedHashMap

HashMap vs TreeMap vs LinkedHashMap 항목 HashMap TreeMap LinkedHashMap 기반 자료구조Hash TableRed-Black TreeHash Table + Linked List정렬 여부❌ 없음✅ 자동 정렬 (Key 기준 오름차순)❌ 없음삽입 순서 유지❌ 없음❌ 없음 (정렬 순서로 유지됨)✅ 유지null 키 허용✅ 1개 허용❌ (NullPointerException 발생)✅ 1개 허용null 값 허용✅✅✅시간 복잡도 (삽입/삭제/조회)평균 O(1)O(log n)평균 O(1)Iterator 순회 순서예측 불가Key 정렬 순삽입 순Key 비교 방식equals() + hashCode()compareTo() 또는 Comparatorequals() + hashCode..

자료구조 2025.05.01

TreeMap - Java

TreeMapTreeMap은 Java의 Map 인터페이스를 구현한 클래스 중 하나로, 키를 자동으로 정렬하며 내부적으로 **Red-Black Tree(이진 탐색 트리)**를 사용합니다.범위 검색이나 정렬 기반의 탐색에 적합합니다.주요 특징자료구조레드-블랙 트리 (Red-Black Tree)정렬 여부✅ 자동 정렬 (Key 기준 오름차순)삽입 순서 유지❌ (정렬 순서대로 유지됨)null 허용❌ Key는 허용 X, Value는 허용 O시간 복잡도O(log n)특징Key 정렬, 범위 탐색, ceiling, floor 등 사용 가능대표 메서드package structure.map.treemap;import java.util.Map;import java.util.TreeMap;public class TreeMapC..

자료구조 2025.05.01

LinkedHashMap - Java

LinkedHashMapLinkedHashMap은 HashMap의 기능을 그대로 유지하면서, 입력 순서를 기억하는 Map입니다.내부적으로 해시 테이블 + 이중 연결 리스트를 사용하여, 순서를 보장합니다.주요 특징자료구조HashMap + 이중 연결 리스트정렬 여부❌삽입 순서 유지✅null 허용✅ (Key 1개, Value 다수 허용)시간 복잡도평균 O(1)특징순서 + 빠른 접근이 필요한 경우 (ex. 캐시 구현)대표 메서드package structure.map.linkedhashmap;import java.util.LinkedHashMap;public class LinkedHashMapClass { private final LinkedHashMap linkedHashMap; public Link..

자료구조 2025.05.01

HashMap - Java

HashMap HashMap은 Java의 가장 일반적인 Map 구현체로, 키-값 쌍(Key-Value Pair)을 저장하며, 내부적으로 해시 테이블(Hash Table) 기반으로 작동합니다.정렬 순서나 삽입 순서를 유지하지 않지만, 탐색 및 삽입 속도가 매우 빠릅니다.주요 특징자료구조해시 테이블 (HashTable)정렬 여부❌ 없음 (순서 보장 X)삽입 순서 유지❌null 허용✅ (Key 1개 + Value 여러 개 허용)시간 복잡도평균 O(1) (삽입, 삭제, 조회)특징가장 빠르며, 가장 자주 사용됨. 순서가 중요하지 않을 때 사용대표 메서드package structure.map.hashmap;import java.util.Collection;import java.util.HashMap;public c..

자료구조 2025.05.01

TreeSet vs HashSet vs LinkedHashSet

TreeSet vs HashSet vs LinkedHashSet항목 TreeSet HashSet LinkedHashSet기반 자료구조Red-Black Tree (이진 탐색 트리)Hash TableHash Table + Linked List정렬 여부✅ 자동 정렬 (오름차순)❌ 없음❌ 없음삽입 순서 유지❌ 유지되지 않음❌ 유지되지 않음✅ 유지됨중복 허용❌❌❌null 허용❌ (예외 발생)✅ 하나 가능✅ 하나 가능시간 복잡도 (삽입/삭제/탐색)O(log n)O(1) 평균O(1) 평균부분 집합(subSet), 범위 검색✅ 지원❌❌Iterator 순회 순서정렬 순예측 불가삽입 순서 유지사용 추천 상황정렬/범위 탐색이 필요한 경우빠른 삽입/탐색이 필요한 경우순서를 기억하면서 빠른 성능이 필요한 경우상황별 추천정렬된 ..

자료구조 2025.04.30

LinkedHashSet - Java

LinkedHashSetLinkedHashSet은 Java의 Set 구현체로, HashSet의 성능에 입력 순서 유지 기능을 추가한 순서 있는 집합입니다.내부적으로 HashMap + Doubly Linked List 구조를 사용하여 요소의 순서를 기억합니다.주요 특징자료구조HashMap + 이중 연결 리스트정렬 여부✅ 입력 순서 유지중복 허용❌ (Set의 기본 특성)null 허용✅ (단 하나만 허용)시간 복잡도add, remove, contains 평균 O(1)차이점HashSet보다 약간 느리지만 순서를 기억함대표 메서드package structure.set.linkedhashset;import java.util.LinkedHashSet;public class LinkedHashSetClass { ..

자료구조 2025.04.30

HashSet - Java

HashSetHashSet은 Java에서 제공하는 Set 인터페이스의 구현체로, 중복을 허용하지 않고, 저장된 순서를 유지하지 않으며,빠른 검색/추가/삭제 성능을 갖춘 자료구조입니다. 주요 특징자료구조내부적으로 HashMap 기반정렬 여부❌ (저장 순서 보장 X)중복 허용❌ (Set의 기본 특성)null 허용✅ (단 하나의 null 값만 허용)시간 복잡도대부분의 연산은 평균 O(1)대표 메서드package structure.set.hashset;import java.util.HashSet;public class HashSetClass { private final HashSet hashSet; public HashSetClass(HashSet hashSet) { this.hashSe..

자료구조 2025.04.30