목록분류 전체보기 (427)
안 쓰던 블로그
이 글(http://foxtrotin.tistory.com/40)에서 배열의 마이너스 주소에 대해 질문을 받았습니다.요지는 lake[-1][-1]이 왜 에러가 나지 않는가..에 관한 내용입니다. 배열이란 같은 데이터형을 가진 여러개의 데이터가 메모리 안에 쭉 나열되어 있는 것을 뜻합니다. 배열의 요소가 되는 각각의 데이터는 인덱스라는 일렬번호를 부여받는데, 컴파일 할 때 이 인덱스와 실제 메모리 어드레스간의 변환 작업을 거쳐 인덱스에 대응하는 메모리 영역을 쓸 수 있는 것입니다.이러한 이유로 lake[-1][-1]을 호출하면 우리는 모르지만 거기에 해당되는 메모리 영역을 가져오게 되기 때문에 에러가 나지 않습니다. 코드로 살펴보겠습니다 1234567891011121314151617#include int ..
DFS(Depth-First Search), 깊이 우선 탐색이란 전 탐색(Full-Search)의 한 종류로 더 이상 이동이 가능하지 않을 때까지 진행하다가 이동이 불가능하면 다시 전 단계로 돌아와 가능한 길을 찾아 움직이는 탐색 방법입니다. 다른 종류로는 BFS(Breadth-First search)너비 우선 탐색이 있습니다. 각종 프로그래밍 대회나 정보올림피아드에서 자구 나오는 문제 유형이므로 잘 알아두면 어려모로 도움이 되는 알고리즘입니다. 1. 1에서 2로 이동2. 2에서 3으로 이동3. 3에서 4로 이동4. 4에서 더 진행할 곳이 없으므로 3으로 되돌아옴5. 3에서 5로 이동6. 5에서도 진행할 곳이 없으므로 3으로 되돌아옴7. 3도 마찬가지므로 2로 되돌아옴8. 2에서 6으로 이동9. 2로 되..
이 문제를 뭐라고 불러야할지...보기에는 파스칼의 삼각형과 유사하지만 더 간단하다.값 n을 기준으로 왼쪽과 위쪽의 합을 배열에 넣고 출력한다. 방법 1 123456789101112131415161718192021222324#include int main(){ int c[20][20] = { 0, }, a, b, i, j; scanf("%d %d", &a, &b); for (i = 0; i
1. 배열 사용 12345678910111213#include int main(){ int c[20][20] = { 0, 1 }, a, i, j; scanf("%d", &a); for (i = 1; i
스케줄링의 한 방법인 라운드 로빈을 소개하려고 한다. 우선순위 스케줄링의 단점은 순위가 낮은 프로세스들은 무작정 대기를 해야돼서 CPU를 계속 기다리고만 있는 상태가 되는 것이다.그것을 보안하기 위해 나온게 바로 라운드 로빈 기법이다. 라운드 로빈 스케줄링은 프로세스가 하나 끝날 때까지 CPU를 가지고 있는게 아니라, 할당된 시간만큼 돌아가며 처리하는 방식이다.이렇게 하면 우선순위가 낮은 프로세스도 공평하게 실행될 수 있다.라운드 로빈은 라운드 로빈 DSN, 리눅스 등을 포함한 대부분의 시스템에서 사용하고 있는 방식이다. [라운드 로빈의 개념] 1. 준비상태인 프로세스 A, B, C, D가 있다.2. A가 선점되어 시간할당향만큼 CPU를 사용한다. 3. 할당된 시간이 끝난 A가 준비상태로 쫓겨난다.4. ..
들어가기전 컴퓨터를 이루는 3대 하드웨어에 대해 살펴보도록 하겠다. 하드웨어 하드디스크 RAM CPU 하드디스크: 보조기억장치. 모든 데이터와 프로그램을 저장하는 창고역할을 한다.RAM: 주기억장치. 현재 실행 중인 프로그램이 기억된다. 컴퓨터를 끄면 데이터가 전부 사라지기 때문에 전원을 끄기 전에 모두 하드디스크에 저장되어야 한다.CPU: 연산, 제어장치. 명령어를 실행한다. 우리는 하드웨어를 몰라도 컴퓨터를 잘 쓸 수 있다.이것을 가능한 이유는 지금도 열심히 돌아가고 있는 운영체제 덕분이다! 1. 운영체제란?한 마디로 '한정된 컴퓨터 시스템의 자원들을 보다 효율적으로 관리하고 운영'하는 시스템 소프트웨어다. 하드웨어와 응용 프로그램 사이에서 응용 프로그램들이 메모리, CPU등의 자원을 사용할 수 있도..
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106#include #include #include #define delay_time 1000 void input_file(void);void output_file(void);void copy_image(void);void delay(void); int main(){ back: system("cls"); printf("+----------..