Database와 DBMS
·
Computer Science/Database
데이터베이스란?일정한 규칙이나 규약을 통해 구조화되어 저장되는 데이터 모음.다양한 형태와 구조로 존재하며 사용자나 애플리케이션이 데이터를 효율적으로 저장하고 검색할 수 있도록 설계되어 있다. 데이터 무결성:데이터베이스는 데이터의 일관성과 정확성을 유지하는 데 도움을 준다.데이터 보안:사용자 접근 권한을 설정하여 민감한 데이터를 보호할 수 있다.효율적인 데이터 관리:대량의 데이터를 효율적으로 저장하고 검색할 수 있다.데이터 중복 최소화:데이터베이스는 데이터 중복을 줄이고 저장 공간을 절약하는 데 기여한다.    주요 설계 개념엔티티(Entity)데이터베이스에서 관리해야 할 대상이나 객체를 모델링한 것.DB내에서 하나의 고유하게 식별될 수 있는 속성들을 가짐.실 세계의 사물, 개념, 사람 등을 나타낼 수 있..
큐(Queue) - Array와 LinkedList로 구현, 원형큐, 덱/데크(Deque)
·
Computer Science/Data Structure
큐란?큐는 FIFO(First In First Out) 원칙을 따르는 선형 데이터 구조이다. 즉, 삽입된 순서대로 삭제가 처리된다.   큐 연산 주요 연산인 enqueue, dequeue 외에도 peek(front), empty, size 등의 연산이 있다.enqueue: 큐의 뒤(rear) 끝에 새로운 데이터를 추가하는 연산dequeue: 큐의 앞(front) 끝에서 데이터를 제거하고 반환하는 연산front 또는 peek: 큐의 앞에 있는 데이터를 제거하지 않고 반환하는 연산empty: 큐가 비어 있는지 확인하는 연산size: 큐에 있는 데이터의 개수를 반환하는 연산   큐 구현큐도 스택과 마찬가지로 배열이나 연결 리스트를 사용하여 구현할 수 있다.데이터 크기 예측 가능한 경우         ->  ..
스택(Stack) - Array와 LinkedList로 구현
·
Computer Science/Data Structure
스택이란?LIFO(Last In First Out) 구조를 갖는 자료구조를 말한다. 즉, 나중에 삽입된 데이터가 먼저 삭제되는 구조이다.데이터를 일시적으로 저장할 때 매우 유용한 선형 데이터 구조이다.   스택 연산스택에는 push, pop과 같은 주요 연산과 peek(top), empty, size 등의 연산을 가질 수 있다. push: 스택의 맨 위에 데이터를 삽입하는 연산pop: 스택의 맨 위에 있는 데이터를 삭제하고 반환하는 연산peek 또는 top: 스택의 맨 위에 있는 데이터를 삭제하지 않고 반환하는 연산empty: 스택이 비어 있는지를 확인하는 연산size: 스택에 있는 데이터의 개수를 반환하는 연산   구현스택은 배열이나 연결리스트를 사용하여 구현할 수 있다.데이터 크기 예측 가능한 경우 ..
[백준/Gold IV] 단어 수학 - 1339
·
코딩 테스트 정복기/백준
[Gold IV] 단어 수학 - 1339문제 링크 성능 요약메모리: 11760 KB, 시간: 72 ms분류그리디 알고리즘제출 일자2024년 11월 1일 22:43:07문제 설명민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다.단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳은 같은 숫자로 바꿔야 하며, 두 개 이상의 알파벳이 같은 숫자로 바뀌어지면 안 된다.예를 들어, GCF + ACDEB를 계산한다고 할 때, A = 9, B = 4, C = 8, D = 6, E = 5, F = 3, G = 7로 결정한다면, 두 수의 합은 99437이 되어서 ..
[백준/Gold IV] 카드 정렬하기 - 1715
·
코딩 테스트 정복기/백준
[Gold IV] 카드 정렬하기 - 1715문제 링크 성능 요약메모리: 24156 KB, 시간: 316 ms분류자료 구조, 그리디 알고리즘, 우선순위 큐제출 일자2024년 11월 1일 19:41:12문제 설명정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다.매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우 달라진다. 예를 들어 10장, 20장, 40장의 묶음이 있다면 10장과 20장을 합친 뒤, 합친 30장 묶음과 ..
배열(Array)과 리스트(List), ArrayList와 Linked List
·
Computer Science/Data Structure
배열(Array)배열은 동일한 데이터 타입의 요소들이 연속된 메모리 공간에 저장된 자료 구조이다.특징 : 배열 선언 시 크기가 고정된다.한번 결정된 크기는 변경할 수 없다.인덱스를 사용하여 요소에 빠르게 접근할 수 있으며, 인덱스는 0부터 시작한다.배열 안의 모든 요소가 동일한 데이터 타입을 가진다.연속된 메모리 공간에 할당 된다. Java에서 배열 다루기// 배열 만들기int[] arr1;// 배열 만들면서 크기 지정int[] arr2 = new int[5];// 배열 만들면서 크기+값 지정int[] arr3 = {1, 2, 3, 4, 5};// arr3 배열에서 index 0인 요소에 접근System.out.println(arr3[0]); // 1   Java의 Arrays 클래스Java에서 배열 자..
[프로그래머스/level 2] 예상 대진표 - 12985
·
코딩 테스트 정복기/프로그래머스
[level 2] 예상 대진표 - 12985문제 링크 성능 요약메모리: 67.7 MB, 시간: 0.04 ms구분코딩테스트 연습 > 2017 팁스타운채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 11월 04일 17:28:35문제 설명△△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 참가자끼리 게임을 진행합니다. 각 게임에서 이긴 사람은 다음 라운드에 진출할 수 있습니다. 이때, 다음 라운드에 진출할 참가자의 번호는 다시 1번부터 N/2번을 차례대로 배정받습니다. 만약 1번↔2번 끼리 겨루는 게임에서 2번이 승리했다면 다..
[백준/Silver I] 회의실 배정 - 1931
·
코딩 테스트 정복기/백준
[Silver I] 회의실 배정 - 1931문제 링크 성능 요약메모리: 97796 KB, 시간: 940 ms분류그리디 알고리즘, 정렬제출 일자2024년 11월 1일 19:06:19문제 설명한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다.입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 ..
메모리 할당 - 연속할당(고정분할, 가변분할)과 불연속할당(페이징, 세그멘테이션, 페이지드세그멘테이션), 단편화
·
Computer Science/Operating System
단편화내부단편화외부단편화메모리 블록 안에 사용되지 않는 공간이 발생하는 현상.메모리 블록 밖에 사용 가능한 메모리 공간이 여러 조각으로 나뉘어, 필요한 만큼의 큰 연속된 메모리 블록을 확보하지 못하는 현상.      프로그램에 필요한 메모리를 할당할 때 시작 메모리 위치, 메모리 할당 크기를 기반으로 할당하며, 연속할당과 불연속 할당으로 나뉜다.  연속할당 (contiguous memory allocation)하나의 연속된 메모리 블록에 프로세스를 할당하는 방식. 물리적으로 연속된 공간을 사용하는 메모리 관리 기법이다. 고정 분할 (Fixed Partitioning)메모리를 일정한 크기로 분할하여 프로세스를 할당하는 방식. 즉, 시스템이 시작될 때 고정된 크기의 파티션으로 나누고 이 크기가 변하지 않는다..
캐시 종류와 캐시 매핑( 직접매핑, 연관매핑, 집합-연관 매핑)
·
Computer Science/Operating System
캐시(cache)란?캐시는 컴퓨팅에서 자주 사용되는 데이터나 연산 결과를 임시로 저장하는 고속 메모리이다.메인 메모리보다 빠른 속도로 데이터에 접근할 수 있도록 설계되어 있어, 시스템 성능을 크게 향상시킬 수 있다.특히 CPU와 메모리 간의 병목 현상을 줄이는 데 중요한 역할을 한다.  캐시 히트(Cache Hit)요청한 데이터가 캐시에 존재하는 경우를 뜻함. 캐시 히트가 발생하면 데이터 접근시간이 매우 짧아짐.캐시 미스(Cache Miss)요청한 데이터가 캐시에 없는 경우를 뜻함. 캐시 미스가 발생하면 메인메모리에서 데이터를 가져와야함. 접근시간 길어짐.캐시 일관성(Cache Coherency)여러 캐시가 동일한 메모리 영역을 공유할 때 데이터 일관성을 유지하는 메커니즘. 특히 멀티프로세서 시스템에서 ..