1 - 1. 자료구조 자료구조란? 물건을 찾을 때 찾기 쉽게 정리를 해야 찾기 쉽고, 스마트폰에서 사진들을 분류하고 컴퓨터에서 폴더별로 파일들을 잘 분류해야 찾기 쉬운 것처럼, 자료를 효율적으로 활용하기 위해서는 정리를 해야 한다. 또 그 정리에도 여러 방법이 있는데, 영어사전은 알파벳 순서대로, 사진은 날짜별로 분류하는 것이 효율적인 것처럼, 자료마다 효율적인 정리 규칙이 있다. 자료구조(Data structure) = 사람들이 사물을 편리하고 효율적으로 사용하기 위해 정리하는 것과 마찬가지로 컴퓨터에서 자료들을 정리하고 조직화 하는 여러 가지 구조 자료구조의 분류 자료구조의 여러 가지 형태 - (1)정수와 실수, 문자와 같이 프로그래밍 언어에서 기본적으로 제공하는 단순 자료구조, (2)여러 가지 자료..
먼저 가상 함수에 대해 알아보자. 가상 함수는 포인터 변수의 자료형에 따라서 호출되는 함수의 종류가 달라지기 때문에 실제로 가리키는 객체에 있는 함수가 아닌 엉뚱한 함수를 호출하는 문제를 방지하기 위해 사용하는 개념이다. 윤성우의 열혈C++의 예제를 예로 들어보자. ‘정규직에는 사무직과 영업직이 있고, 영업직은 사무직과 똑같이 정해진 월 급여를 받지만, 거기에 추가로 판매실적에 대한 상여금을 받는다. 따라서 정규직은 영업직의 부모 클래스이고, 사무직은 특별한 점이 없기 때문에 따로 구분하지 않는다. 하지만 회사의 급여지급 프로그램에서는 일괄적으로 PermanentWorker클래스(정규직 클래스)의 GetPay함수를 사용하기 때문에 영업직의 판매 실적에 따른 상여금이 반영되지 않는다.’ 이러한 문제를 해결..
상속을 사용하는 가장 큰 이유는 이전 글 (죽음의 다이아몬드)에서 설명했듯이 프로그램의 확장성을 위한 것이다. 이를 위해서 부모클래스에서는 최대한 모든 객체가 가지는 특성을 가지고, 자식 클래스로 내려갈수록 점점 그 객체들만 가지는 특성을 가지게 된다. 하지만 여기서 문제가 생긴다. ‘최상위 부모 객체’는 그저 기초 클래스의 의미만 가질 뿐, 객체의 생성을 목적으로 정의된 클래스가 아니라는 점이다. 예를 들어, ‘사람’이라는 클래스가 있고, 그 클래스는 이름과 나이라는 변수를 지닌다. 이는 최상위 부모 객체가 된다. 그 자식 객체는 직업이 없는 사람들과 학생, 또 직장인으로 나눠질 수 있다. 또 여기서 학생은 초, 중, 고, 전문대, 4년제, 대학원 등 여러 자식 객체로 나눠질 수 있지만 그 이야기를 하..
- Total
- Today
- Yesterday
- 오픈소스
- DFS
- 1932
- 컨트리뷰톤
- c++
- 알고리즘
- 구현
- 동적 계획법
- 코딩
- 완전탐색
- 피보나치
- 프로그래머스
- BaekJoon
- 플로이드 와셜
- PyPy3
- 한화큐셀
- c
- 정렬
- 백준
- Dynamic Programming
- 파이썬
- DP
- LG
- 브루트포스
- 인공지능
- 백트래킹
- 이분탐색
- BFS
- webOS
- 카카오
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |