모두의 코드
모두의 코드

총 42 개의 강의로 준비된 씹어먹는 C 언어 강좌를 통해 C 언어의 처음부터 끝까지 배우실 수 있습니다! 특히 악명 높은 C 언어의 포인터나, 어려운 개념들을 충실히 짚고 넘어갑니다.

이 강좌는 2010년에 완결되었지만, 지속적으로 개선 및 보완하고 있습니다.

C 언어 문법을 아시는 분들이라면, 씹어먹는 C++ 강좌를 통해 C++ 기초 부터 최근의 C++ 17 까지 모든 내용을 배우실 수 있습니다. C 언어와 C++ 의 기본적인 문법이 비슷하기 때문에, C 언어를 어느 정도 아는 독자를 가정하여 쓰여져 있습니다.

이 강좌는 2020년에 완결되었고 총 50 개의 강좌가 준비되어 있습니다.

사이트 내에서 검색 하기
C 언어 레퍼런스
표준 입출력 라이브러리 stdio.h
문자열 관련 라이브러리 string.h
시간 관련 라이브러리 time.h
C ++ 레퍼런스
문자열 라이브러리 string
알고리즘 라이브러리 algorithm
최근 댓글
강의 잘 보고 있습니다. 생각해보기의 문제 2번은 어려웠지만 그만큼 생각해볼 것이 많았던 문제였던 것 같습니다. 부족하지만 제가 해당 문제를 풀 때의 방법을 적어봅니다. 모든 점들간의 거리는 피타고라스 정리를 사용하면 금방 구할 수 있습니다. 하지만 직선들간의 교점 문제는 생각보다 어려웠습니다. 해당 문제를 해결하기 위해서 저는 다음과 같은 방법을 이용했습니다. 1. 모든 점들간의 직선을 구한다.(직선을 구하는 과정에서 중복되는 직선들은 제외한다.) 2. 1번에서 구한 모든 직선들끼리 교점이 있는지 계산한다. <조건1> a*b'!=a'*b - 여기에서 교점이 있는지 판단하는 방법을 위에 강의와는 다르게 적용하였습니다. 위 강의에서의 제시하신 방법은 직선과 선분간의 교점이 존재함을 증명하기 때문에 몇몇 경우에서 직선과 다른 직선의 교점을 판단할 수 없기 때문입니다. 따라서 모든 직선들간의 교점을 판단하려면 두 직선 ax+by+c=0 과 a'x+b'y+c'=0가 있고 a*b'!=a'*b 일 때, 즉 두 직선의 기울기가 다를 때 두 직선은 교점을 가진다는 증명을 이용하였습니다. <조건2> 조건 1에서 교점을 가짐이 확인되었지만 이 교점이 처음에 주어진 점이 아닐 때 1번에서 직선을 구할 때 처음에 입력된 점들간의 직선을 구하는 것이기 때문에 대부분의 입력된 점들은 직선들간의 교점으로 여러번 나올 수 있습니다. 따라서 조건 2를 통해 교점이 중복으로 카운트 되지 않도록 하였습니다. 3. 1번에서 구한 직선의 개수가 3개 이상인 경우 num_point 만큼 교점의 개수에 추가한다. (위 3번은 조건 2 때문에 필수불가적으로 적용할 수 밖에 없었습니다. 다만 왜 직선의 개수가 3개 이상이여야 함은 점이 3개 이상일 때 직선은 1개 혹은 3개 이상만 나올 수 있기 때문입니다. 종이에 직접 해보시면 이해가 가실겁니다.) 앞으로 남은 강좌도 잘 보겠습니다. 감사합니다.
컴공 09.16