일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준 1707번
- 트리(Tree)
- 백준 1948번
- 이분 탐색(Binary Search)
- 백준 2493번
- 동적 프로그래밍(Dynamic Programming)
- 분할 정복(Divide and Conquer)
- 알고리즘 개념
- 백준 21606번
- 그리디 알고리즘(Greedy Algorithm)
- 백준 17608번
- 백준 9012번
- 다익스트라 알고리즘(Dijkstra Algorithm)
- 백준 2261번
- 스택(Stack)
- 위상 정렬(Topology Sort)
- DFS
- DFS & BFS
- 이분 그래프(Bipartite Graph)
- 플로이드 워셜 알고리즘(Floyd-Warshall Algorithm)
- 백준 10000번
- BFS(Breadth First Search)
- BFS
- DFS(Depth First Search)
- 백준 18352번
- 그래프(Graph)
- 백준 2504번
- 큐(Queue)
- 백준 2812번
- 위상 정렬(Topological Sort)
- Today
- Total
목록프로그래밍 언어/C (22)
Always Be Wise

포인터란 어떤 변수의 주소 값을 저장하는 변수를 의미한다. 포인터 변수를 선언할 때는 담고자 하는 자료형에 *(참조 연산자)를 붙여서 선언한다. 만약 int형 변수의 주소를 담고 싶으면 int *을, char형 변수의 주소를 담고 싶으면 char *을 사용하면 된다. 포인터 변수의 크기는 32비트 시스템이면 4비트, 64비트 시스템이면 8비트로 동일한 크기를 같는다. 그러나 포인트 연산을 할 때에는 그 주소로 찾아가 해당하는 자료형의 크기를 읽어 들여야 한다. #include int main() { int *p = NULL; // int* p == int * p 모두 같음 int num = 15; p = # printf("int 변수 num의 주소 : %d \n", &num); printf("포인..
함수란 특정한 기능을 따로 분리해놓은 것을 의미한다. 함수를 이용하면 코드의 유지보수 및 가독성, 재활용성이 높아진다. 함수의 기본적인 형태는 아래와 같다. 반환형과 전달받는 인자, 즉 매개 변수가 없는 경우도 있다. /* 기본적인 형태 [반환형] [함수명] (매개 변수) { [호출 시 작동될 함수 내부 코드] } */ #include void func1(void) { printf("반환할 필요도 없고, 인자도 받지 않는 void 함수입니다.\n"); } void func2(int num) { printf("받은 인자는 %d 입니다.\n", num); } float func3(int num) { printf("인자의 형과 반환형을 맞춰줄 필요는 없습니다.\n"); return 3.14 * num; } i..
조건문에는 if 문과 switch 문이 있다. if 문은 가장 기본적인 조건문으로 아래와 같이 if와 else if, else로 구성되며 특정 조건을 만족하면 해당 조건에 해당하는 내용을 실행하는 형태로 구성된다. #include int main() { int num; printf("아무 숫자나 입력해주세요. : "); scanf("%d", &num); if(0 < num) { printf("num은 양수입니다."); } else if(num < 0) { printf("num은 음수입니다."); } else { printf("num은 0입니다."); } return 0; } switch 문은 if 문과 마찬가지로 조건을 체크하고 그 케이스를 실행한다. 단, if 문처럼 관계식을 쓰지는 못하고 특정한 정수..

컴퓨터는 숫자를 글자에 대응시키는 방식으로 문자를 사용한다. 예를 들어, 알파벳 'a'는 숫자 97에 대응된다. 이런 식으로 문자 하나 하나를 숫자에 매칭시키고 표현하는 방식을 아스키 코드(ASCII CODE)라고 한다. 그런데 1바이트를 사용하는 경우, 숫자와 문자를 매칭 시킬 경우 최대 256개의 글자 밖에 표현을 못한다. 이런 제한을 극복하기 위해 유니코드(UNICODE)를 사용한다. 유니코드는 문자를 2바이트로 처리하여 기존의 256배, 65,536개의 글자를 표현할 수 있다. #include int main() { char ch[7] = { 'a', 'b', 'c', 'd', 0, 'e', 'f' }; printf("ch 는 %s", ch); return 0; } 여러 정수를 하나의 변수에 담고..

배열을 이용하면 하나의 변수에 여러 개의 값을 넣을 수 있다. int main() { int arr[5] = {1, 33 , 47, 102, 155}; return 0; } 위와 같이 변수 이름 뒤에 대괄호를 이용해서 배열을 초기화할 수 있다. 대괄호 안의 숫자는 배열의 크기를 나타낸다. 위의 경우 5개의 값이 들어갈 수 있다는 의미이다. 배열 각각의 값들에 접근하려면 값의 위치를 알아야 한다. 값의 위치는 인덱스로 알 수 있다. 인덱스는 0부터 시작하기 때문에 배열에서 가장 첫 번째 값의 인덱스는 0이다. #include int main() { int arr[5] = {1, 33 , 47, 102, 155}; printf("arr 배열의 첫 번째(=인덱스가 0) 값 : %d\n", arr[0]); pr..

▶ 기본 연산자 덧셈, 뺄셈, 곱셈, 나눗셈 그리고 나머지 등의 연산자 등이 포함된다. int main() { printf("%d", 2 + 6); // 8 printf("%d", 6 - 2); // 4 printf("%d", 2 * 6); // 12 printf("%d", 6 / 2); // 3 printf("%d", 7 % 2); // 1 return 0; } ▶ 증감 연산자 증감 연산자는 변수에 담겨 있는 값을 증가하거나 감소시키는 연산자를 의미한다. 전위와 후위로 나뉘며 전위의 경우에는 먼저 값을 변화시킨 뒤에 연산자가 쓰인 줄의 코드를 실행시키고, 후위의 경우에는 연산자가 쓰인 줄의 코드를 실행한 후 값을 변화시킨다. #include int main() { int i = 0; printf("%d..
C 언어에서는 'printf'를 이용하여 출력, 'scanf'를 이용하여 입력을 받는다. 입출력 과정에서 아래와 같이 자료형 형식 지정자를 이용한다. #include int main() { int a; printf("정수를 입력하세요 : "); scanf("%d", &a); printf("입력받은 정수 : %d", a); return 0; } 그런데 'scanf'의 경우 저장할 변수 앞에 &를 붙인다. &는 주소를나타내는 문자이다. 즉, '&a'와 같이 변수 앞에 &가 붙으면 이는 그 변수 a의 값이 아닌 a의 주소를 의미한다. 따라서 변수 앞에 &를 사용하지 않으면 입력 받은 값을 어떤 주소에 저장할지 모르기 때문에 에러가 발생한다. '&a'는 a의 주소값이지만 a는 주소가 아니기 때문이다. 단, 문..
값을 바꿀 수 있는 변수와 달리 값을 바꿀 수 없는 자료를 상수라고 한다. 상수는 처음 정의할 때 무조건 값을 입력해야 하며, 그 값은 절대로 바꿀 수 없다. C 언어에서 상수를 선언할 때는 자료형 앞에 const만 붙이면 된다. #include int main() { const double PI = 3.1415; PI = 5; return 0; }

변수를 출력할 때는 아래와 같은 형식 지정자를 사용해야 한다. 가장 많이 사용하는 네 가지만 표로 정리되어 있다. 더 많은 것은 "C 언어 형식 지정자(C language format specifier)"를 검색하면 확인할 수 있다. #include int main() { int a; int b; a = 50; b = 100; printf("a의 값은 %d, b의 값은 %d 입니다.", a, b); return 0; } 위 코드를 실행하면 "a의 값은 50, b의 값은 100 입니다."가 출력된다. 여기서 알 수 있는 건 %d가 그대로 출력되지 않고, %d 라는 부분에 a, b 변수의 값이 출력된다는 것이다. 이와 같이 형식 지정자를 따옴표 내의 문자열에서 출력될 자리에 적어주고, 콤마(,) 뒤에 출력할..

자료형(Data Type)이란 변수의 종류를 의미한다. C 언어에서는 변수에 값을 담기 전에 정수, 실수, 문자, 문자열 등 어떤 값들을 지닐 수 있는지 자료형을 미리 정해주어야 한다. 정수형 변수로는 char, short, int, long, long long이 있으며, char는 정수와 문자를 표시할 때에 사용되고, short, int, long, long long은 정수를 나타낼 때 사용한다. 차이는 좀 더 크거나 작은 숫자를 표시할 수 있다는 점에 있다. 정수형 자료형의 경우 부호가 있는 변수와 부호가 없는 변수로 나눌 수 있다. 부호가 있는 경우에는 음수와 양수 모두 표현이 가능하고, 부호가 없는 변수의 경우 양수만을 표현할 수 있다. 부호가 없는 변수의 경우 표현 범위가 대략 2배정도 늘어난다..