200813_TIL

hyeojung·2020년 8월 13일
0

TIL

목록 보기
10/62
post-thumbnail

부스트 코딩뉴비챌린지

  • 5주차 미션 제출 결과 우수팀으로 선정되었다! 벌써 5주 중 3주째 우수팀이다 얏호 ~!
  • 주말에 강의를 몰아 들어야 하는 불상사가 생기지 않게 하기 위해 미리미리 강의를 듣는 중이다..
  • 이번 주차는 자료구조를 주제로 강의가 진행된다. 지금까지 챌린지를 진행해오면서 데이터를 더 효율적으로 다루고 정렬하는 방법에 대한 목마름이 계속 있었는데 이번 주차 공부를 하면 조금은 발전할 수 있을 것 같다는 생각이 든다.

윤성우의 열혈 C 프로그래밍

16-1 다차원 배열의 이해와 활용

  • 다차원 배열이라 하면 논리적으로 이해할 수 있는 2,3차원 배열을 의미한다.
  • 2차원 배열의 선언: 자료형 arr[행의 수][열의 수]
  • 2차원 배열의 메모리상 할당 형태: 2차원적 배열은 논리적으로 2차원(직사각형)형태이지만 컴퓨터의 메모리는 1차원적 형태이므로, 배열 요소별 주소값은 배열 자료형의 크기만큼만 차이가 나게 된다.
  • 배열의 크기를 알려주지 않고 초기화하기 - 2차원 배열의 경우 행 수와 열 수 중 하나는 알려줘야 한다.

문제 16-1 2차원 배열의 활용

문제 1
#include <stdio.h>

int main() {
	int arr[3][9] = {
		{2,4,6,8,10,12,14,16,18},
		{3,6,9,13,15,18,21,24,27},
		{4,8,12,16,20,24,28,32,36}
	};
	for (int i = 0; i < 3; i++) {
		printf("%d단\n", i + 2);
		for (int j = 0; j < 9; j++) {
			printf("%d * %d = %d\n", i + 2, j + 1, arr[i][j]);
		}
	}
}
문제 2
#include <stdio.h>

int main() {
	int arr1[2][4] = { 1,2,3,4,5,6,7,8 };
	int arr2[4][2] = { 0, };

	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 2; j++)
			arr2[i][j] = arr1[j][i];
	}
	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 2; j++) {
			printf("%d ", arr2[i][j]);
		}
		printf("\n");
	}
}
문제 3
#include <stdio.h>

int scoreArr[5][5] = { 0, };

void WriteRecord() {
	int sum;
	for (int i = 0; i < 4; i++) {
		sum = 0;
		printf("학생%d의 과목별 점수 입력: ", i + 1);
		for (int j = 0; j < 4; j++) {
			scanf("%d", &scoreArr[i][j]);
			sum += scoreArr[i][j];
		}
		scoreArr[i][4] = sum;
	}
}
void WriteSumRecord() {
	int sum = 0;
	for (int i = 0; i < 4; i++) {
		sum = 0;
		for (int j = 0; j < 4; j++)
			sum += scoreArr[j][i];
		scoreArr[4][i] = sum;
		scoreArr[4][4] += sum;
	}
}
void ShowAllRecord() {
	for (int i = 0; i < 5; i++) {
		for (int j = 0; j < 5; j++)
			printf("%d\t", scoreArr[i][j]);
		printf("\n");
	}
}
int main() {
	WriteRecord();
	WriteSumRecord();
	ShowAllRecord();
	return 0;
}

16-2 3차원 배열

  • 3차원 배열은 논리적으로 직육면체 형태의 배열이다.
  • 3차원 배열의 선언: 자료형 arr[높이][행의 수][열의 수] -> 2차원 배열이 여러 개 모여 있는 형태로 이해하는 것이 더 합리적이다.

생활코딩 👩‍💻 머신러닝야학

  • 2일차 교양의 끝 까지 수강 완료! 사실 13일은 1일차지만,, 지금은 14일 새벽이라서 2일차 강의까지 다 들어버렸다.
  • 머신러닝이 무엇인지, 어플리케이션, 프로그램, 프로그래머가 무엇인지 알게 되었다.
  • 가장 중요한 건 그동안 조급한 마음 때문에 잊고 있던 호기심과 무언가를 해냈을 때 신기해하고 뿌듯해했던 마음을 조금이나마 찾았다는 것이다! 매일 조금씩이나마 공부를 해오고 있지만 갈수록 내가 부족하다는 게 더 많이 느껴져서 요즘 마음이 아팠는데, 강의에 포함되어 있는 격려의 메시지(?) 덕분에 힘을 얻을 수 있었다:)
  • 오늘 들은 마지막 강의 제목이 <교양의 끝>,,, 무섭다ㅋㅋㅋㅋ 그치만 정말 재밌다! 주말엔 강의가 안 열려서 못 듣는 게 아쉬울 정도ㅠㅠ
  • 야학 수료날까지 열심히 들어야겠다.


오늘 공부하면서 느낀 점

  • 오늘은 코딩 좀 하려는데 비주얼 스튜디오 업데이트 후 오류가 나서 복구하고 재시작하고 복구하고 재시작하고 하다 보니 시간을 많이 잡아먹었다. 그래서 인프런 git 강의를 듣지 못했다ㅠ
  • git 강의를 못 듣기도 했고, 오늘은 알바 끝나고 와서 집안일 하고 밥 먹고 공부를 약간 했더니 피곤하다... (오늘 짠 코드는 내일 git 강의 듣고 나서 commit 하겠다는 뜻)
  • 열혈 C는 이제 chap17 들어갈 차례다. 내일은 알바 없는 날이니까 오늘보다는 공부 많이 해야겠다 :)
profile
응애 나 애기 개발자

0개의 댓글