[P4C] C언어 코딩 도장 : UNIT 37
2021. 3. 3. 18:52
Programming Languages/C
Unit 37. 2차원 배열 사용하기 37.1 2차원 배열을 선언하고 요소에 접근하기 2차원 배열은 [ ] (대괄호)를 두 번 사용하여 선언하며 첫 번째 대괄호에는 세로 크기, 두 번째 대괄호에는 가로 크기를 지정한다. - 자료형 배열이름[세로크기][가로크기]; - 자료형 배열이름[세로크기][가로크기] = { { 값, 값, 값 }, {값, 값, 값} }; 2차원 배열의 요소에 접근하려면 배열 뒤에 [ ] (대괄호)를 두 번 사용하며 [ ] 안에 세로와 가로 인덱스를 지정해주면 된다. - 배열[세로인덱스][가로인덱스] #include int main() { int numArr[3][4] = { // 세로 크기 3, 가로 크기 4인 int형 2차원 배열 선언 { 11, 22, 33, 44 }, { 55, 6..
[P4C] C언어 코딩 도장 : UNIT 36
2021. 3. 3. 18:33
Programming Languages/C
Unit 36. 배열 사용하기 배열은 같은 자료형의 변수를 일렬로 늘어놓은 형태이며 반복문과 결합하면 연속적이고 반복되는 값을 손쉽게 처리할 수 있다. 36.1 배열을 선언하고 요소에 접근하기 배열은 변수 이름 뒤에 [ ] (대괄호)를 붙인 뒤 크기를 설정한다. 그리고 배열을 선언하면서 값을 초기화할 때는 { } (중괄호)를 사용한다. - 자료형 배열이름[크기]; - 자료형 배열이름[크기] = { 값, 값, 값 }; #include int main() { int numArr[10] = { 11, 22, 33, 44, 55, 66, 77, 88, 99, 110 }; // 배열을 생성하고 값 할당 printf("%d\n", numArr[0]); // 11: 배열의 첫 번째(인덱스 0) 요소 출력 printf..
[P4C] C언어 코딩 도장 : UNIT 35
2021. 3. 3. 16:00
Programming Languages/C
5[P4C] C언어 코딩 도장 : UNIT 35 이번에는 malloc 함수를 이용해 포인터에 원하는 만큼 메모리 공간을 할당받아 사용하는 방법을 알아보겠다. malloc → 사용 → free 패턴으로 사용할 수 있다. Unit 35.1 메모리 할당하기 메모리를 사용하려면 malloc 함수로 사용할 메모리 공간을 확보해야 한다(memory allocation). 이때 필요한 메모리 크기는 바이트 단위로 지정한다(메모리 할당, 해제 함수는 stdlib.h 헤더 파일에 선언되어 있다). - 포인터 = malloc(크기); #include #include // malloc, free 함수가 선언된 헤더 파일 int main() { int num1 = 20; // int형 변수 선언 int *numPtr1; //..
[P4C] C언어 코딩 도장 : UNIT 34
2021. 3. 3. 00:56
Programming Languages/C
Unit 34. 포인터 사용하기 변수는 컴퓨터의 메모리에 생성된다. 메모리에 일정한 공간을 확보해두고 원하는 값을 저장하거나 가져오는 방식이다. 보통 변수는 메모리의 특정 장소에 위치하고 있으므로 메모리 주소로도 표현할 수 있다. 변수의 메모리 주소를 구할 때는 변수 앞에 & (주소 연산자)를 붙이면 된다. #include int main() { int num1 = 10; printf("%p\n", &num1); // 008AF7FC: num1의 메모리 주소를 출력 // 컴퓨터마다, 실행할 때마다 달라짐 return 0; } 메모리 주소는 008AF7FC과 같이 16진수 형태이며 printf에서 서식 지정자 %p를 사용하여 출력한다. 물론 16진수로 출력하는 %x, %X를 사용해도 된다. 34.1 포인터..
[P4C] CodeUp 1099 : [기초-2차원배열] 성실한 개미
2021. 2. 25. 16:24
Programming Languages/C
문제 : 개미는 오른쪽으로 움직이다가 벽을 만나면 아래쪽으로 움직여 가장 빠른 길로 움직인다. (오른쪽에 길이 나타나면 다시 오른쪽으로 움직인다.) 미로 상자의 구조가 0(갈 수 있는 곳), 1(벽 또는 장애물)로 주어지고, 먹이가 2로 주어질 때, 성실한 개미의 이동 경로를 예상해보자. 단, 맨 아래의 가장 오른쪽에 도착한 경우, 더 이상 움직일 수 없는 경우, 먹이를 찾은 경우에는 더이상 이동하지 않고 그 곳에 머무른다고 가정한다. 미로 상자의 테두리는 모두 벽으로 되어 있으며, 개미집은 반드시 (2, 2)에 존재하기 때문에 개미는 (2, 2)에서 출발한다. 정답 : #include #define _CRT_SECURE_NO_WARNINGS int main() { int arr[10][10]; int ..
[P4C] CodeUp 1098 : [기초-2차원배열] 설탕과자 뽑기
2021. 2. 25. 16:14
Programming Languages/C
문제 : 격자판의 세로(h), 가로(w), 막대의 개수(n), 각 막대의 길이(l), 막대를 놓는 방향(d:가로는 0, 세로는 1)과 막대를 놓는 막대의 가장 왼쪽 또는 위쪽의 위치(x, y)가 주어질 때, 격자판을 채운 막대의 모양을 출력하는 프로그램을 만들어보자. 정답 : #define _CRT_SECURE_NO_WARNINGS #include int main() { int h, w; int n; int l, d, x, y; int arr[100][100]={}; scanf("%d %d",&h,&w); scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d %d %d %d",&l,&d,&x,&y); if (d == 0) { for (int j = y - ..
[P4C] CodeUp 1097 : [기초-2차원배열] 바둑알 십자 뒤집기
2021. 2. 25. 16:02
Programming Languages/C
문제 : 바둑판(19 * 19)에 흰 돌(1) 또는 검정 돌(0)이 모두 꽉 채워져 놓여있을 때, n개의 좌표를 입력받아 십(+)자 뒤집기한 결과를 출력하는 프로그램을 작성해보자. 정답 : #define _CRT_SECURE_NO_WARNINGS #include int main() { int arr[19][19]; int n; int i,j,x, y; for (i = 0; i < 19; i++) { for (j = 0; j < 19; j++) { scanf("%d",&arr[i][j]); } } scanf("%d",&n); for (i = 0; i < n; i++) { scanf("%d %d",&x,&y); for (j = 0; j < 19; j++) { if (arr[x - 1][j] == 0) arr..
[P4C] CodeUp 1094 : [기초-1차원배열] 이상한 출석 번호 부르기2
2021. 2. 25. 15:53
Programming Languages/C
문제 : 출석 번호를 n번 무작위로 불렀을 때, 부른 번호를 거꾸로 출력해 보자. 정답 : #define _CRT_SECURE_NO_WARNINGS #include int main() { int arr[10000]; int n; scanf("%d",&n); for (int i = 0; i = 0; i--) { printf("%d ", arr[i]); } return 0; } 먼저, 번호를 부른 횟수인 n가 1부터 10000까지기 때문에, 배열의 크기가 10000인 arr을 선언한다. 그리고 n을 입력받아 n만큼 for문을 돌리는데, 이때 입력받은 랜덤 번호를 배열의 처음에서부터 순서대로 저장한다. 그리고 ..