| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 알기쉬운 알고리즘
- R
- stream
- 윤성우 열혈자료구조
- Algorithm
- 메모리구조
- 이스케이프 문자
- datastructure
- ㅅ
- s
- Serialization
- 윤성우의 열혈 자료구조
- C programming
- 혼자 공부하는 C언어
- C 언어 코딩 도장
- 이것이 자바다
- buffer
- Selection Sorting
- coding test
- Graph
- JSON
- insertion sort
- Stack
- list 컬렉션
- Today
- Total
목록전체 글 (603)
Engineering Note
구조체구조체는 다양한 자료형을 하나로 묶을 수 있는 복합 자료형으로 다양한 형태의 데이터를 처리할 때 기본으로 사용됩니다.C언어는 자료를 체계적으로 관리하기 위해 구조체라는 문법을 제공합니다.배열은 같은 형태의 데이터를 묶어 반복문으로 처리할 수 있는 좋은 자료형이지만 배열을 사용하려면 모든 데이터의 형태가 같아야 합니다.학생의 학번(315), 이름(홍길동), 학점(3.5)처럼 다른 자료형을 하나의 배열로 선언해서 처리하는 것은 불가능합니다.학번은 정수이고 이름은 문자열, 학점을 실수 이기 때문입니다.만약 다른 형태의 데이터들을 하나로 묶어 단일 자료형으로 다룰 수 있다면 학생별로 데이터를 처리할 수있고 반복문으로 많은 학생의 데이터를 훨씬 효율적으로 처리할 수 있습니다.구조체 선언구조체는 하나의 자료형..
배열 사용 이유같은 형태의 많은 데이터를 선언할 경우 사용한다.배열을 사용하면 반복문을 사용하기 용이하다.C언어로 학생 100명의 성적 평균을 구할 경우 성적값을 저장할 float 또는 int 타입의 변수를 100개를 선언하고 모두 더한 뒤 학생 수로 나눌 경우를 생각해보면 모두 더하는 것도 쉽지 않을 뿐 아니라 변수 선언도 쉽지 않다. 하지만 배열을 사용하면 쉽게 변수를 선언하고 반복문을 통해 합을 구하는 것도 쉽다.배열의 선언자료형 배열명[크기];자료형 배열명[크기] = {값, 값, 값};int numArr[10]={11,22,33,44,55,66,77,88,99,110};크기가 10인 int형 배열을 선언 한다는 뜻배열을 선언하면서 값을 초기화할 때는 {}안의 값 개수는 배열의 크기보다 작아도 되지..
STL(Standard Template Library)Container와 Algorith을 일반화한 자료구조 라이브러리로서 일반화된 라이브러리(generic library)의 사용을 위해서 Template을 제공한다.STL의 핵심구성요소는 Container, Algorithm, iteratorSTL은 정수, 실수 등의 기본형은 물론이고 사용자 정의형 등 어떤 자료형의 데이터에 대해서도 사용할 수 있는 자료구조를 제공해 주며 또한 자료구조의 형태나 내부 구조에 상관 없이 어떤 데이터 집합에도 적용해서 사용할 수 있는 일반화된 알고리즘을 제공한다.Program의 구성요소 및 STL의 필요성Program은 Container(자료구조)와 Algorithm(알고리즘)으로 구성된다.좋은 프로그램을 작성하려면 상황에..
알고리즘 효율성 분석 시간의 효율성 공간의 효율성 코드의 효율성 시간의 효율성 주어진 조건에서 문제를 해결하기 위해 가능한 한 빠른 시간안에 가장 효율적으로 해결책을 찾는 것 시간복잡도 시간복잡도는 알고리즘에서 사용된 입력크기와 단위연산이 몇 번 수행되는지 함수로 표현 공간의 효율성 컴퓨터의 메모리를 얼마나 사용하는지에 따라 효율성을 결정 공간복잡도 코드의 효율성 개발자 입장 변수명과 주석 등 이해하기 쉽도록 작성되어 코드의 가독성이 좋고 유지보수가 용이하도록 모듈화를 잘해 놓은 코드 하드웨어 입장 컴퓨터와 하드웨어의 입장에서 작성된 코드 알고리즘 분석 방법 Every case analysis 입력크기에 종속 입력값과는 무관함 Worst case analysis 입력크기와 입력값 모두에 종속 단위연산이 ..
it 취업을 위한 알고리즘 문제풀이 문제 코드1 코드2 문제해결방법 입력 값을 문자열 서식지장저 %s로 배열에 입력 받으면 마지막은 NULL로 입력된다. 문제의 조건에 따라 a와 b가 1일 경우를 각각 예외를 조건문으로 구현하면 C 바로 다음에(인덱스 1번에 )H가 입력 된 경우, H 바로 다음에 NULL이 입력된 경우이다. 각각의 if문 이외의 경우에 탄소의 수를 구하는 코드를 구현하면 배열에 값이 1번부터 H가 나올 때까지 배열의 문자로 저장된 값을 숫자로 변경해주고 누적 값을 구할때마다 기존값에 10을 곱해 자리수를 증가시켜준다. 이때 수소의 위치를 i값으로 확인가능하다. 하지만 인덱스 1에 H가 있을 경우에도 꼭 H의 위치를 표시해주어야 한다. 수소의 수를 구하는 코드는 H다음 값부터 NULl이 ..
it 취업을 위한 알고리즘 문제풀이 문제 코드 문제해결방법 1부터 N까지 각 숫자를 10으로 나누면서 3이 있으면 카운트 값을 증가시킨다.
KOCW 알고리즘(명지대 이충기교수님) 알고리즘 문제 해결을 위한 단계적인 절차 알고리즘 작성법 인간의 자연어(한국어, 영어)로 작성 pseudo code(의사코드)로 작성 순서도로 작성 알고리즘에서 특정 문장의 수행 횟수를 계산하기 위해 필요한 3가지 식 1. 2. 3. 1번 식의 사용 사례 i가 1일 때 1번, 2일때 2번, 3일때 3번, 4일때 4번 수행 ... n일때 n번 수행 -> 총 (1+2+3+4+...+n) 번 수행
분할정복 알고리즘 주어진 문제의 입력을 분할하여 문제를 히결하는 방식의 알고리즘이다. 분할된 입력에 대하여 동일한 알고리즘을 적용하여 해를 계산하며, 해를 취합하여 원래 문제의 해를 얻는다. 여기서 분할된 입력에 대한 문제를 부분문제라고 하고, 부분문제의 해를 부분해라고 한다. 부분 문제는 더 이상 분할할 수 없을 때까지 계속 분할한다. 가짜동전찾기 1024개의 동전에서 하나의 가벼운 가짜 동전이 있을 때 하나를 기준으로 1023개를 비교해가며 가짜 동전을 찾을 수도 있고 2개씩 짝지어 n/2번회수로 가짜동전을 찾을 수도 있지만 분할정복기법을 적용하면 비교횟수를 줄일 수 있다. 512개씩 저울에 비교 가벼운 쪽을 다시 256개씩 비교, 가벼운쪽을 다시 128개씩, 64,32,16,8,4,2,1씩 비교해가..