- 참치군
- ?
- stalk.io
- :: 2013년, 스리는 여섯살
- 웹 강좌
- 점프 투 파이썬
- 요니나의 대학생 재테크
- This is CS50
- 애자일 이야기
- isao의 IT,게임번역소
- 소프트웨어 이야기
- Color Scripter
- 어디를 가든지 마음을 다해 가라
- VisuAlgo
- 서울대 평생교육원
- 몽환
- RegExr: Learn, Build, & Test R…
- Hello, Stranger :D
- I Like Exploit
- Z3alous Security Story
- Project Euler
- Blog
- pieces of code
- window 쪼물딱 거리기
- IT - Informatics Alphabet
- rop
- 국제 정보교육센터 I2sec 대구 1기
- This is the moment. :)
- blackmoon
- z3alous는 세상에 소리 z3alous~
- Acord
- FORENSIC-PROOF
- 어셈블리
- Outsider's Dev Story
- Open Tutorials
- 코드라이언
- 컴퓨터 그래픽스와 3D 프린팅
- HACKABILITY
- Lee, Jae-Hong
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 블루블랙
- 오지총
- Hello World
- 파이썬
- 펌
- 컴파일러
- ubuntu
- 버퍼오버플로우
- 알고리즘
- 발표
- 염색
- 공간복잡도
- Wireshark
- 베이스
- Packet
- 탈색
- 창의공학설계
- Calling Convention
- 피보나치
- 디버깅
- 시간복잡도
- Debug
- 레지스터
- 동대구
- 호출규약
- Visual Studio
- 소켓
- BOF
- 추상데이터타입
- C언어
- Today
- Total
목록프로그래밍 (24)
c0smicb0y
구조체배열은 같은 타입의 데이터의 모임인데 반해 타입이 다른 데이터를 그룹화할 수 있는 방법 중 하나가 구조체(structure)이다.예를 들어 다음과 같은 선언은1234struct { char name[16]; int age;} person;cs이름이 person이고 2개의 필드를 갖는 변수를 생성한다. char형 배열 nameint형 변수 age 이러한 필드에 아래와 같이 값을 할당할 수 있다.12strcpy(person.name,"Jang");person.age = 20;cs typedef명령문을 사용하여 구조체 데이터 타입을 생성할 수도 있다.1234typedef struct human { char name[10]; int age;};cs혹은1234typedef struct { char name[..
컴파일러정의 : 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 번역하는 컴퓨터 프로그램. 원시 언어(Source Language)로 작성된 프로그램을 입력받아서, 목적 언어(Target Language)로 작성된 동일한 의미의 프로그램을 출력으로 가진다. 원시언어란 C나 C++같은 사람이 이해하기 쉬운 고급 언어(High-Level Language)이고, 목적 언어란 목적 컴퓨터에서 실행되는 기계 명령들로 작성된 코드인 목적 코드(Object Code) 또는 기계 코드(Machine Code)이다. 역사초기 컴퓨터 프로그램들은 기계에 의해서 실제로 수행될 연산을 표현하는 숫자로 된 코드인 기계어로 작성되었다. 하지만 기계어는 작성하는데 시간이 많이 걸리고 지루하기 때문에, 명령과 메모리..
배열정의 : 인덱스와 값 의 쌍으로 구성된 집합. 배열의 추상 데이터 타입(ADT)Object : 집합 (아무 자료형)에 속한 값이 존재하는 쌍의 집합. Fuctions : 모든 , , , 에 대하여 = return 차원의 배열. = if () return 배열 의 인덱스 값에 포함되어 있는 항목. else return 에러. = if () return 새로운 쌍 가 삽입된 배열 . else return 에러. C 언어에서의 배열1. 1차원 배열C언어에서 1차원 배열을 선언하는 방법은 두가지가 있다.12int array[5];int *parray[5];cs첫 번째 배열은 5개의 정수를 선언한것이고,두 번째 배열은 정수에 대한 5개의 포인터를 정의하였다. C에서는 모든 배열의 인덱스는 0에서 시작하므로 첫..
백트래킹정의 : 여러 해들 중에 조건에 맞는 모든 해를 찾는 알고리즘. 알고리즘1. 후보 해를 선택한다.2. 조건에 따라 후보 해에 적절성 검사를 시행한다. 통과하지 못하면 지금 현재 선택한 후보 해를 버리고 1로 돌아가 후보 해를 다시 선택한다.3. 적설성 검사가 통과한 경우 이 후보 해가 문제의 해가 되는지 검사한다. 검사를 통과하면 이것이 문제의 해이고, 검사를 통과하지 못하면 1로 돌아가 후보 해를 계속해서 선택한다. 백트래킹의 활용1. 미로 탈출로 찾기재귀함수를 통해 백트래킹으로 미로 탈출로를 찾아보자. 알고리즘1. 시작점을 현재 위치로 지정하고, 이동방향을 북으로 설정한다.2. 현재 위치에서 가고자 하는 이동 방향으로 이동이 가능한지 확인한다. 벽과 이미 지나온 길은 이동가능한 길이 아니다.3..
탐욕 알고리즘정의 : 미리 정한 기준에 따라서 매번 가장 좋아 보이는 답을 선택하는 알고리즘 동적 계획법과 마찬가지로 최적화 문제를 푸는데 사용한다.근시안적으로 해를 구할 당시에 가장 최적인 해를 구한다.탐욕 알고리즘은 동적 계획법보다 효율적이긴 하지만 동적 계획법처럼 반드시 최적의 해를 구해준다는 보장을 하지 못한다. 알고리즘1. 해 선택 (Selection Procedure) : 지금 당시에 가장 최적인 해를 구한뒤, 이를 부분해 집합에 추가한다.2. 적절성 검사 (Feasibility Check) : 새로운 부분해 집합이 적절한지 검사한다.3. 해 검사 (Solution Check) : 새로운 부분해 집합이 문제의 해가 되는지 검사한다. 아직 문제의 해가 완성되지 않았다면 1번부터 다시 시작한다. ..
동적 계획법 정의 : 어떤 문제가 반복적이고 최적 하위구조로 이루어질때, 하위구조에 있는 부분 문제의 답을 기반으로 전체 문제의 답을 구하는 방법 최적 하위구조(Optimal Substructure)란 전체 문제의 답이 부분 문제의 답으로부터 만들어지는 구조를 말한다. 예를 들어 어떤 문제를 7개의 하위문제로 나눌 수 있을때, 7개의 하위문제의 답을 모두 얻어야 이 문제의 답을 구할 수 있다면 이 문제는 최적 하위구조를 갖추었다고 할 수 있다. 분할정복과 비슷해 보이지만, 분할정복은 문제를 큰부분에서 작은부분으로 나누는데반해(Top-Down), 동적 계획법은 제일 작은 부분부터 큰 문제로 풀어 올라간다(Bottom-Up). 또한 분할정복은 나눈 문제들을 완전히 새로운 하나의 독립된 새로운 문제로 보지만,..
분할정복 정의 : 분할정복 알고리즘은 문제를 나눌 수 없을 때까지 나누어서 각각을 풀면서 다시 합병하여 문제의 답을 얻는 알고리즘이다. 알고리즘을 설계하는 요령 (1) Divide : 문제가 분할이 가능한 경우, 2개 이상의 문제로 나눈다. (2) Conquer : 나누어진 문제가 여전히 분할이 가능하면, 또 다시 Divide를 수행한다. 그렇지 않으면 문제를 푼다. (3) Combine : Conquer한 문제들을 통합하여 원래 문제의 답을 얻는다. 문제를 제대로 나누면 Conquer하는 것은 쉽기 때문에 Divide를 제대로 하는 것이 가장 중요하다.분할정복 알고리즘은 재귀 알고리즘이 많이 사용되는데, 이 부분에서 분할정복 알고리즘의 효율성을 깎아내릴 수 있다. 분할정복의 응용 1. 병합 정렬 (Me..
1.1 개요 : 시스템 생명 주기 시스템 생명 주기는 크게 다섯가지로 나누어진다. (1) 요구사항(requirement) : 대부분의 프로젝트들은 그 프로젝트들의 목적을 정의한 명세들의 집합으로부터 시작한다. (2) 분석(analysis) : 시스템의 요구사항을 기술하고 나면 문제들을 실제 다룰 수 있을 정도의 작은 단위로 나눈다. 분석에는 크게 두가지 접근법이 있는데 bottom-up과 top-down방법이 있다. bottom-up은 세세한 부분들을 합쳐서 포괄적이게 되는 방식이고 top-down은 포괄적인 부분부터해서 점점 세세한 부분으로 내려가는 방식이다. (3) 설계(design) : 설계 단계는 분석 단계에서 완료된 작업들을 계속한다. 설계자는 시스템이 필요로 하는 객체들과 프로그램에서 실행되는..