목록전체 글 (404)
happy coding
TCP school을 보고 정리한 내용입니다. 연산자(operator) 연산자란 프로그램의 산술식이나 연산식을 표현하고 처리하기 위해 제공되는 다양한 기호를 의미한다. 산술 연산자(arithmetic operator) 산술 연산자는 사칙연산을 다루는 기본적이면서도 가장 많이 사용되는 연산자이다. 또, 모두 2 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다. + 왼쪽의 피연산자에 오른쪽 피연산자를 더한다. - 왼쪽의 피연산자에서 오른쪽 피연산자를 뺀다. * 왼쪽의 피연산자에 오른쪽 피연산자를 곱한다. / 왼쪽의 피연산자를 오른쪽 피연산자로 나눈다. % 왼쪽의 피연산자를 오른쪽 피연산자로 나눈 다음, 그 나머지를 반환한다. 연산자의 우선순위(operator preced..
TCP school을 보고 정리한 내용입니다. 타입 변환(type conversion)은 다른 타입끼리의 연산 중에, 하나의 타입을 다른 타입으로 바꾸는 행위를 말한다. 표현 범위가 좁은 타입에서 더 넓은 타입으로의 타입 변환은 큰 문제가 되지 않지만, 반대의 경우에는 데이터 손실이 발생한다. 타입 변환은 크게 1. 묵시적 타입 변환(자동 타입 변환) 2. 명시적 타입 변환(강제 타입 변환)이 있다. 묵시적 타입 변환(자동 타입 변환, implicit type conversion) 묵시적 타입 변환은 대입 연산이나 산술 연산에서 C 컴파일러가 자동으로 실행해주는 타입 변환을 가리킨다. C언어에서는 대입 연산 시 연산자의 오른쪽에 존재하는 데이터의 타입이 연산자의 왼쪽에 존재하는 데이터의 타입으로 묵시적 ..

수업을 듣고 정리한 내용입니다. 배낭 문제는 0-1 배낭 문제라고 말하기도 하는데, n개의 물건과 각 물건 i의 무게 Wi와 가치 Vi가 주어지고, 배낭 용량이 C일 때, 최대 가지 값을 구하는 알고리즘이다. 단, 배낭에 담은 물건의 무게 합이 C를 초과하지 않으며, 각 물건은 1개씩 넣을 수 있다. 이 알고리즘의 부분문제는 i=1,2,...n이고, w = 1,2, ... c라고 가정한 상황에서 K[i,w] = 물건1 부터 i까지만 고려하고, (임시)배낭의 용량이 w일 때의 최대 가치 로 둔다. 여기서 물건은 행이고, 배낭의 용량은 열이다. Knapsack 입력 : 배낭의 용량은 c, n개의 물건과 각 물건 i의 무게 Wi와 가치 Vi, 단 i=1, 2, ... n 출력 : K[n,C] for i = 0..
수업을 듣고 정리한 내용입니다. 편집거리 문제(edit distance)는 문서 편집기를 사용하는 중에 스트링 S를 수정해 다른 T로 변환하고자 할 때, 삽입(insert), 삭제(delete) 그리고 대체(sutstitude) 연산을 사용하는데 필요한 최소 편집 연산횟수를 계산하는 알고리즘이다. 문자를 편집할 때, 어떤 연산을 어느 문자에 수행하느냐에 따라 편집 연산 횟수가 달라지는데, 이를 부분문제를 정의하여 해결한다. 편집거리 문제에서 부분 문제는 접두부(prefix)를 확인하는 과정으로부터 시작된다. S의 길이를 m 그리고 T의 길이를 n이라 하고, 각각의 문자를 s_i, t_i라고 가정하였을 때, S = s1s2s3 ... sm, T = t1t2t3 ... tn이다. E[i,j]를 S의 처음 i..
TCP school을 보고 정리한 내용입니다. 기본 타입 기본타입이란 해당 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려주는 역할을 한다. C언어는 여러 형태의 타입을 미리 작성하여 제공하고 있는데, 이것을 기본 타입이라고 한다. 기본타입의 종류에는 1. 정수형 2. 실수형 3. 문자형 이 있다. 정수형 타입 정수란 부호를 가지고 있고, 소수 부분이 없는 수를 의미한다. 그 중 unsigned 키워드를 추가하면 부호를 나타내는 최상위 비트(MSB, Most Significant Bit)까지도 크기를 나타내는 데 사용할 수 있다. 여기서 unsigned 정수는 음수를 표현할 수는 없지만, 0을 포함한 양의 정수는 두 배 더 많이 표현할 수 있다. 음의 정수도 표..
TCPschool을 보고 정리한 내용입니다. 변수(variable) 변수란 데이터를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미하는데, 다시 말해 데이터를 저장할 수 있는 메모리 공간이다. 그리고 이렇게 저장된 값은 변경이 가능하다. 또한, 데이터가 저장된 메모리의 주소를 저장하고 처리하는 포인터 변수가 있고, 관련된 정보를 한 번에 묶어 처리하는 사용자 정의 구조체 변수가 있다. 변수 정수형 변수 char, int, long 실수형 변수 float, double 변수의 이름 생성 규칙 1. 영문자(대소문자), 숫자, 언더스코어(_)로 구성된다. 2. 숫자로 시작될 수 없다. 3. 이름 사이에는 공백을 포함할 수 없다. 4. C언어에서 미리 정의된 키워드(keyword)는 사용할 수..
TCPschool을 보고 정리한 내용입니다. 변수(variable) 변수란 데이터를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미하는데, 다시 말해 데이터를 저장할 수 있는 메모리 공간이다. 그리고 이렇게 저장된 값은 변경이 가능하다. 또한, 데이터가 저장된 메모리의 주소를 저장하고 처리하는 포인터 변수가 있고, 관련된 정보를 한 번에 묶어 처리하는 사용자 정의 구조체 변수가 있다. 변수 정수형 변수 char, int, long 실수형 변수 float, double 변수의 이름 생성 규칙 1. 영문자(대소문자), 숫자, 언더스코어(_)로 구성된다. 2. 숫자로 시작될 수 없다. 3. 이름 사이에는 공백을 포함할 수 없다. 4. C언어에서 미리 정의된 키워드(keyword)는 사용할 수..
TCPschool을 보고 공부한 내용입니다. printf()함수 printf() 함수는 C언어의 표준 출력 함수이고 원형은 밑과 같다. printf에서의 f는 formatted의 약자이며, 서식화된 출력을 지원한다는 의미이다. 이 함수에서는 출력할 데이터를 어떤 서식에 맞춰 출력할지 서식 지정자를 통해 직접 지정이 가능하다. #include int printf(const char* restrict format, ...); printf("sentence.\n"); printf("%d개의 문장\n", 55); int형 데이터를 나타내기 위해 %d라는 서식 지정자를 사용하고, 줄바꿈은 \n이라는 이스케이프 시퀀스를 사용해 표현한다. 이스케이프 시퀀스(escape sequence) \' 작은 따옴표 \" 큰 따..