일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 크래프톤 정글
- 크래프톤정글
- TiL
- HTML
- 자바스크립트
- userprog
- 백준
- Flutter
- JavaScript
- corou
- 사이드프로젝트
- pintos
- 나만무
- 스택
- 오블완
- Vue.js
- 큐
- 리액트
- defee
- 자바
- 모션비트
- 티스토리챌린지
- 핀토스
- 소켓
- CSS
- Java
- 4기
- 알고리즘
- 시스템콜
- 코드트리
- Today
- Total
목록코딩 (367)
미새문지
예외적인 제어 흐름(Exceptional Control Flow, ECF) 시스템들은 내부 프로그램 변수에 의해 표시되지 않으며, 프로그램의 실행과는 반드시 관련되어 있지 않은 시스템 상태 변화에도 반응할 수 있어야 한다. 사용자가 특정 명령어나 요청을 내릴 경우, 시스템은 이에 대해 특정한 방식으로 반응하는데, 정상적인 흐름이 아닌 경우를 말한다. 예외 상황(Exception) 하드웨어와 운영체제에 의해 구현된 예외적인 제어 흐름의 한 형태로 이해할 수 있다. 이는 프로세서 상태의 변화에 대응해 제어 흐름이 급격하게 변경되는 상황을 말한다. 프로세서가 특정 이벤트 발생을 감지하면, 예외 테이블이라는 점프 테이블을 통해 이 특정 종류의 이벤트를 처리하기 위한 운영체제의 서브루틴인 예외 처리 핸들러로 ..
이더넷(Ethernet) 이더넷은 1980년대부터 사용되어 가장 널리 쓰이는 유선 네트워크 기술이며, 주로 LAN(로컬 영역 네트워크)를 구성하는데 사용하지만, MAN(메트로폴리탄 네트워크), WAN(광대역 네트워크)에도 적용이 가능하다. 주요 특징 프레임 기반의 데이터 전송 이더넷은 데이터를 프레임 단위로 전송하며, 각 프레임은 송신자와 수신자의 MAC 주소를 포함한다. 이를 통해 데이터를 정확하게 전달할 수 있다. CSMA/CD 알고리즘 이더넷은 여러 디바이스가 동시에 데이터를 전송하려고 할 때 충돌을 감지하고 관리하는 CSMA/CD 알고리즘을 사용한다. 다양한 속도 지원 초기에는 10Mbps였지만, 현재에 와서는 100Gbps 이상의 초고속 이더넷도 상용화 되고있다. 이를 통해 다양한 환경과 요..
이진 트리 문제 두 개의 트리의 구조와 값이 같은지 확인하는 함수(문제에 값은 안나와있었지만 첨부) int identical(BTNode *tree1, BTNode *tree2) { // 만약 두 트리가 탐색할 노드가 없다면 같다고 판단해 1 반환 if(tree1 == NULL && tree2 == NULL) return 1; // 위의 if문 통과 후 하나라도 탐색할 노드가 남아있다면 두 트리가 달라 0 반환 if(tree1 == NULL || tree2 == NULL) return 0; return ( // tree1의 값과 tree2의 값이 같고 tree1->item == tree2->item && // 노드 왼쪽 노드로 재귀를 타고 identical(tree1->left, tree2->left) ..
연결리스트의 노드들을 큐를 사용해 저장하고 노드가 홀수 값이면 제거 void createQueueFromLinkedList(LinkedList *ll, Queue *q) { // 현재 노드를 가리키는 포인터를 선언 ListNode *cur; // 시작하기 전 매개변수로 받은 큐를 전부 없애기 removeAllItemsFromQueue(q); // 현재 노드에 리스트의 첫 노드를 넣기 cur = ll->head; // 현재 노드가 존재하는 동안 반복하며 while(cur != NULL) { // 큐를 삽입(enqueue에 큐와 현재 노드의 값을 인자로 보내기) enqueue(q, cur->item); // 현재 노드를 다음 노드로 변경 cur = cur->next; } } void removeOddValu..
디스크 RAM 메모리의 수천 메가 바이트 단위에 비해 수백에서 수천 기가바이트 단위의 엄청난 양의 데이터를 저장하는 대표적인 저장 장치 하지만 디스크에서 정보를 읽는 데에는 밀리 초 단위로 걸리며, 이것은 SRAM보다 백만 배 더 길고 DRAM보다 십만 배 더 걸리는 것이다. 데이터를 영구적으로 저장 가능하며 일반적으로 하드디스크(HDD)를 사용한다. 디스크의 구성 요소 플래터(Platters) 디스크의 주요 저장 매체로, 얇고 원판 모양의 금속 또는 유리 플레이트이며, 매우 미세한 페라마그네틱 재료 코팅이 되어 있어, 이를 통해 데이터를 저장한다. 플래터의 개수가 많아질수록 용량이 늘어난다. 리드/라이트 헤드(Read/Write Heads) 플래터 위에 떠있는 소형 기기로, 플래터에 정보를 쓰거나 플래..
1번 문제 - 삽입정렬 연결리스트 함수 int insertSortedLL(LinkedList *ll, int item) { /* add your code here */ // 현재 노드와 새 노드를 선언하고 index를 0으로 초기화 ListNode *cur; ListNode *newNode; int index = 0; // 현재 노드에 리스트의 첫 노드값을 넣고 cur = ll->head; // 현재 노드가 값이 있는 동안 while(cur != NULL) { // 만약 현재 노드의 값이 입력된 값과 같으면 -1을 반환 if(cur->item == item){ return -1; } cur = cur->next; } // 현재 노드를 리스트의 첫 노드로 넣기 cur = ll->head; // 연결리스트의..
저장장치 기술 랜덤-접근 메모리(Random Access Memory, RAM) 컴퓨터가 작동할 때 임시적으로 데이터를 저장하고 처리하는 역할을 하는 주요 하드웨어 중 하나이다. 전원을 끄면 RAM에 저장된 모든 정보가 사라지기 때문에 ‘휘발성’ 메모리 라고도 불린다. 그래서 컴퓨터를 재시작 할 때 RAM은 완전히 비워지기 때문에 컴퓨터가 빠르게 동작하게 된다. 종류 SRAM(Static Random Access Memory) 데이터를 저장하기 위해 플립플롭 회로를 사용하며, 전력이 공급되는 한 데이터를 계속 유지할 수 있다. 한 비트당 여러 개의 트랜지스터가 필요하므로, 용량 대비 비용이 높다. 속도가 빠르기 때문에 캐시 메모리처럼 속도가 중요한 곳에서 사용된다. 캐시 메모리로 사용되며 CPU칩 내부 ..
현재 코드의 출력값 구하기 정수형 y에 20을 넣고 fun 함수에 y인자를 넣고 호출 받은 매개변수를 정수형 x로 담아 x 에 30을 넣는다. 하지만 직접 주소값에 접근한게 아닌 call by value로 y의 값만 복사되었기 때문에 다시 main으로 와서 출력해도 y의 값은 변하지 않는다. 정답 : 2 현재 코드의 출력값 구하기 1번 문제와 반대로 call by address 즉, 직접 접근을 해 값을 변경할 수 있도록 주소값을 참조해 fun 함수가 호출되어 실행될 때 입력된 매개변수의 값이 y의 주소값으로 접근해 30으로 바뀐다. 정답 : 2 출력이 각각 뭐가 나오는지 확인하기 정수형 arri 배열에 1, 2, 3 값을 넣기, 정수형 포인터 ptri에 arri를 넣기 문자형 arrc 배열에 1, 2,..