전체 글 119

2018.03.14의 자료구조 첫 과제

새 학기가 시작됐고, 매우 바쁘게 살고 있다. 학생회 부장을 맡게 되어 매우 귀찮게 되었고, 동아리 임원 까지 맡게 되었다. 군대 전에 마지막으로 불태우는 것 같기도 하다. 뭐 어쨌든 문제는 이거다. 이 문제는 file open을 사용한 입력법과 선택정렬, 문장부호 제거(텍스트 제외한 모든 것), 중복 제거 그리고 마지막으로 이진 탐색의 구현을 요구하고 있다. 그리하여 작성자가 구현한 함수는 strcmp_r(O(n^2)), test(O(n)), GetWord(O(n)), sort_r(선택정렬,O(n^2)), binSearch(logn) 이다.아래의 그림은 큰 범위의 함수와 사용된 함수들이다.1. strcmp_r(char *a, char *b) : a와 b를 비교(소문자로 변환하여)하여 a가 크면 1, b..

백준 기초 알고리즘 2강

백준 알고리즘 2강(스택)을 들었다. 그래서 문제를 다 풀까 하다가 예전에 C로 스택을 구현하면서 다시는 하지 않겠다고 다짐했던 기억이 나서 그건 건너 뛰고 다른 세 문제(BOJ 9012, 10799, 1406)을 풀고 치우기로 했다. 먼저 BOJ 9012인데 백준님께서는 이걸 스택을 사용하여 풀라고 하셨다. 그러셨다. 사실 배열만으로 풀 수 있는 문제지만 그러라고 하셨다. 난 모른다.솔직히 말해서 함수를 쓸 필요도 없었다. 함수 네이밍 센스가 매우 구린것도 인정한다. 판독 함수면서 getline이라니. 정말 구리다. 어쨌든 이렇게 만든 이유는 순전히 습관이다. 필자는 암기력이 매우 약하다. 그렇기 때문에 문제를 풀다가 한번 놓쳐버리면 바로 사라져버린다. 그렇기에 언제든 쓸 수 있는 함수를 만들어 놓고 ..

백준 알고리즘 기초 1강

A+B 쪽은 하나만 하고 싶다. 11022번 그냥 A+B 문제에서 할 일만 많아진 느낌이다. 코드는 다음과 같다. 그대로 출력하기는 두 개 다 올리겠다. 11718, 11719BOJ 11718 BOJ 11719 뭘 하는 걸까. 다른건 다 파이썬으로 했고... 별찍기나 하자.그 중에서도 그나마 난이도가 있는 BOJ 10992로 하자. 그냥 이런거 찍으면 성공인데, 띄어쓰기 숫자만 신경써주면 된다.이걸로 1강이 끝났다.

20171129 프로그래밍 기초(최종 과제)

한마디로 정리하자면 이진 트리와 연결 리스트를 이용해서 연락처 프로그램을 만들라는 과제였다.(자료 구조는 2학년 1학기 범위이다.)먼저 Tree의 구조체를 본다면, 트리의 헤드를 만드는 구조체가 하나 존재하며, 헤드 및 다른 노드들을 생성하기 위한 구조체, 그리고 그 안에 전화번호'들'을 저장하기 위한 연결 리스트의 구조체 또한 존재한다.노드의 키(이름)을 만드는 방법전화번호를 추가하는 방법addUser(그러니까 위의 함수들 총합)사실 여기까지만 구현하면 나머지는 조금만 생각하면 할 수 있다.(because 만드는게 제일 어렵기 때문이다.)나머지 것들은 파일안에 넣어놨으니 정리할 수 있도록 한다.