본문 바로가기

반응형

분류 전체보기

(70)
관계형 데이터 모델 정리 Relational Data Model 관계형 데이터 모델이란 릴레이션의 집합으로 된 데이터베이스를 말합니다. 여기서 릴레이션은 쉽게 말하면 표라고 할 수 있습니다. 릴레이션에는 행과 열이 있고 행을 구분하기 위한 식별자와 열을 구분하기 위한 애트리뷰트가 있습니다. 도메인 (Domain) : 도메인이란 애트리뷰트에 들어갈 수 있는 값의 범위를 말합니다. 릴레이션 스키마 (Relational Schema) : 릴레이션 구조를 간단히 보여주는 형식입니다. (테이블의 틀에 대한 정보) STUDENT(Name, Ssn, Home_phone, Addressm, Office_phone, Age, Gpa) 이런 형태를 하고 있습니다. 차수 (Degree) : 애트리튜트의 수를 말합니다. 위의 테이블은 7차 릴레이션입..
[리트코드] 207. Course Schedule 문제 https://leetcode.com/problems/course-schedule/description/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 분석 해당 과목을 듣기 위해서는 반드시 먼저 들어야 할 선수과목이 있다. 선수과목을 화살표로 표기해보면 방향이 있는 그래프가 만들어 진다. 이 문제에서는 주어진 과목을 전부 들을 수 있는 지 여부를..
[백준] 연구소 문제 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 문제 분석 n * m 크기의 맵이 주어지는데 0은 빈칸, 1은 벽, 2는 바이러스이다. 바이러스는 상하좌우 인접한 빈칸으로 퍼져 나간다. 바이러스가 최소한으로 퍼져 나가도록 벽을 3개 세워야 하는 문제이다. n 과 m 은 모두 3 이상 8 이하이다. 크기가 작기 때문에 완전 탐색을 생각해볼 수 있을 거 같다. 주어지는 바이러스의 개수는 2보다 크거나 같고 10보다 작거나 같다. 우선 바이러스가 퍼져 나가..
[리트코드] 743. Network Delay Time 문제 https://leetcode.com/problems/network-delay-time/description/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 분석 문제를 읽어보면 방향 그래프와 가중치가 주어진 것을 확인할 수 있다. 우선 가중치가 주어진 그래프를 보고 다익스트라 알고리즘으로 풀 수 있지 않을까? 라는 생각을 하고 문제를 더 읽어보자..
데드락 문제 (Deadlock Problem) Deadlock (교착상태) 두 개 이상의 프로세스나 스레드가 서로가 가진 자원을 기다리며 다음 일을 처리하지 못하는 상태를 말합니다. 프로세스 A와 B는 1번 자원과 2번 자원을 모두 획득해야 일을 끝낼 수 있는데 A는 1번을 B는 2번 자원을 각자 획득하고 상대방에게 할당된 자원을 무한정 기다리고 있다. Deadlock 발생의 4가지 조건 데드락은 아래의 4가지 조건이 모두 성립해야 발생한다. 따라서 아래 조건 중 하나라도 해결한다면 데드락 문제를 해결할 수 있다. Mutual Exclusion (상호배제) 자원은 한번에 하나의 프로세스만 사용할 수 있다. No preemption (비선점) 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 뺏을 수 없다. Hold and wait (점유 대기..
동기화 문제와 세마포어 동기화 문제 (Synchronization problem) 동기화 문제란 공유 데이터를 여러 프로세스나 스레드가 동시에 접근하여 연산하려 할 때 연산이 원자적으로 수행되지 않아 발생하는 문제입니다. 아래 예시를 통해 어떤 문제가 생기는 지 알아보겠습니다. (동기화란 여러 프로세스/스레드를 동시에 실행해도 공유 데이터의 일관성을 유지하는 것) 위에 공유 자원 X 에 접근하는 두 스레드 A, B 가 있습니다. A 는 X 값을 하나 올리는 연산을 하고, B 는 X 를 하나 내리는 연산을 합니다. 실제 CPU 에서는 x= x + 1 연산이 한번에 이루어 지는 것이 아닌 다음과 같이 수행됩니다. 1. x를 레지스터에 로드한다 2. 레지스터에 데이터를 하나 올린다. 3. 다시 레지스터 값을 x에 저장한다. 스레드 ..
메모리 관리 기법, 페이징과 세그먼트 알아보기 프로세스가 실행되기 위해서는 우선 메모리에 프로세스가 로드 되어야 합니다 이때 메모리에 로드 되는 방식에 따라 크게 연속 할당 방식과 불연속 할당 방식이 있는데, 연속 할당 방식은 현재 많이 사용하고 있지 않기 때문에 간단하게 개념만 설명하고 불연속 할당 방식에 대해 자세히 살펴 보겠습니다. 연속 할당 VS 불연속 할당 연속 할당 연속 할당은 한 프로세스를 메모리 상에 연속적으로 할당하는 방식입니다. 따라서 MMU 만 있다면 간단하게 주소 변환이 가능합니다. 여기서 주소 변환이란 논리적인 주소를 물리적인 주소로 변환하는 과정을 말합니다. CPU 는 논리적인 주소를 바라보기 때문에 논리적인 주소를 물리적인 주소로 변경하는 과정이 필요합니다. 이때 사용되는 것이 MMU 라는 하드웨어 장치 입니다. (MMU에..
[리트코드] 529. Minesweeper 문제 https://leetcode.com/problems/minesweeper/description/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 분석 문제를 읽어보면 지뢰찾기 게임의 규칙과 같다는 것을 알 수 있다. 주어진 위치에서 부터 탐색해 나가면서 탐색한 위치에 알맞는 문자로 업데이트 해준다. "E" 일 경우는 아직 탐색하지 않았으니 탐색한다..
메모리 구조 이해하기 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리 로드되어야 합니다. 그럼 저희가 사용할 프로그램들을 전부 메모리에 로드시켜 놓을까요? 리눅스 기준으로는 프로세스 하나가 4GB 인데, 보통 우리가 사용하는 8GB, 16GB 메모리에 사용하고 싶은 프로그램들을 어떻게 전부 실행시킬 수 있죠? 가상 메모리 덕분입니다. 가상 메모리 가상 메모리란 메모리가 실제 메모리보다 더 많아 보이게 하는 기술입니다. 프로세스는 각각 고유의 가상 메모리 공간을 갖고 있고 이중 일부만을 실제 메모리에 올려 실행합니다. 따라서 메모리에는 실제 실행시킬 프로세스의 일부만을 올려 두기 때문에 동시에 많은 프로세스를 로드 시킬 수 있습니다. Logical address 가상 메모리에 접근하기 위한 주소로, CPU가 접근하는 주소입..
[프로그래머스] 자물쇠와 열쇠 문제 https://school.programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 분석 문제를 간단하게 요약하자면 N x N 의 자물쇠 이차원 배열과 M x M 의 열쇠 이차원 배열이 주어진다. 주어진 열쇠를 시계 방향으로 90도씩 회전하고 이동하면서 주어진 자물쇠를 풀 수 있는 지를 물어보는 문제이다. 열쇠의 돌기 부분이 자물쇠의 홈 부분에 딱 맞아야 자물쇠가 풀린다. (홈과 돌기는 1과 0으로 표기되어 있다.) 문제의 제한 사항을 확인해보면 N과 M이 3이상 20..

반응형