일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 모여봐요동물의숲
- 정보처리기사개정
- 후니의쉽게쓴시스코라우팅
- 막대기자르기
- 실업급여
- IT기초
- 알고리즘
- 생애첫계약
- 실업인정인터넷신청
- 자료구조
- 동적계획법
- 튜터링
- leetcode
- array
- 취업사실신고
- 회사폐업
- 부분합알고리즘
- 캡쳐링
- 자취준비
- 코딩테스트
- 순열
- HeadFirstDesignPatterns
- 후니의쉽게쓴시스코네트워킹
- 사회초년생
- 네트워크
- 정보
- C++
- 프로그래머스
- 청년내일채움공제
- 전화영어
- Today
- Total
목록프로그래밍/공부 (37)
따봉도치야 고마워

교착상태(DeadLock)란? *상호 배제에 의해 나타는 문제점. 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상 상호 배제(mutual exclusion) : 여러 프로세스가 공유자원을 동시에 사용하지 못하도록 사용하는 알고리즘 교착상태 발생의 조건 상호 배제(Mutual Exclusion) : 한 자원을 여러 프로세스가 동시 접근 불가 점유와 대기(Hold and Wait) : 자원을 가진 상태에서 다른 프로세스가 사용 중인 자원의 반납을 기다리는 것 비선점(Non Preemptive) : 다른 프로세스의 자원을 강제로 가져올 수 없음 환형 대기(Circle Wait) : 각 프로세스가 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있는 것..
각각의 정의는 알고 있었는데 차이점을 물어보니까 대답을 잘못하겠어서 정리하는 글! *프로세스(Process) - 컴퓨터에서 연속적으로 실행되고 있는 프로그램의 단위 - 실행될 때 운영체제에서 각각 독립된 메모리 영역을 할당 받음 *쓰레드(Thread) - 프로세스 내에서 실행되는 작업의 단위 - 각각 Stack만 따로 할당 받고 Code, Heap, Data 영역은 공유함 두 번째 줄의 차이가 큰 것 같다. 특히 멀티프로세스와 멀티쓰레드를 비교할 때 차이가 더 느껴짐 *멀티프로세스 - 하나의 응용프로그램을 여러 개의 프로세스로 구성해 각 프로세스가 하나의 작업을 처리 - 장점 : 여러 개 자식 프로세스 중 하나에 문제가 발생해도 그 자식 프로세스만 죽고 다른 영향X - 단점 : *ContextSwitch..

*해시테이블이란? 연관배열 구조를 이용해 키에 결과 값을 저장하는 자료구조 = 키(key)와 값(value)이 1:1로 연관 되어 있는 자료구조 아래와 같은 기능을 지원 - 키와 값을 저장 - 주어진 key로 value를 얻음 - 주어진 key의 value 삭제 - 주어진 key의 value를 새로운 값으로 교체 구조 - key는 해시함수를 통해 hash로 변경되고, hash는 value와 매칭되어 저장소에 저장됨 해시테이블의 단점 - 상하 관계가 있거나, 순서가 중요한 데이터의 경우 적합하지 않음 - 공간 효율성이 떨어짐 (미리 저장공간을 확보해 놔야해서) - 해시 함수의 의존도가 높음 해시 함수 - 서로 다른 길이를 가진 key를 일정한 길이의 hash로 바꿔줌 - 어떤 기준으로 바꿔줄 것인가? ->..
배열과 리스트 : 동일한 특성의 데이터들의 집합을 가리키는 자료구조 둘의 가장 큰 차이는 구조적 차이라고 생각한다. 배열의 경우 연속된 메모리 공간에 할당되고, 리스트의 경우 메모리가 연속적인 공간에 있지 않고 다음 노드를 가리키는 주소값을 가지고 있다. 이런 차이에서 오는 각각의 장단점을 알아보자. *배열 (1)장점 - 구현이 쉬움 - 인덱스가 있어 조회에서 빠른 성능을 보여줌 - 연속된 메모리 공간에 할당되어 순차 접근에도 빠름 - 참조를 위한 추가 메모리 할당이 필요 없음 (2)단점 - 삽입/삭제 시 뒤에 요소들을 이동해야 해서 비효율적 - 선언 시 지정한 크기 변경 불가 - 메모리 재사용 불가 (초기 사이즈만큼 할당이 되고, 데이터가 없더라도 메모리를 차지하고 있음) *리스트 (1)장점 - 삽입/..
일단 0으로 초기화하는 방법은 int array[10] = {0,}; 그럼 다른 값으로 초기화 하려면 int array[10] = {5,}; 가 될까 싶었는데, 결론적으론 안된다. (첫 원소값만 5가 되고 나머지는 0으로 초기화 된다) 그럼 특정 값으로 배열을 초기화하는 방법은 뭐가 있을까 1.for문 돌리기 이게 싫어서 찾아보기 시작한건데, 오히려 몇몇 방법에 비해 이게 더 간단하고 빠르다는 말이 많다 2.GCC를 사용한다면 int array[100] = { [0 ... 99] = -1 }; //0부터 99까지 -1로 초기화 3.C++인 경우 fill_n 함수 사용 std::fill_n(array, 100, -1); 4.기타 C#의 경우 Enumerable.Repeat(값, 사이즈).ToArray()를..