머리쓰기(24)
-
[자료구조]객체 지향 프로그래밍의 정의와 개념.
객체. 정의 : 객체(object)는 계산을 수행하고 상태를 갖는 개체. 따라서 객체는 데이터와 절차적 요소의 결합으로 볼 수 있다. by Grady Booch 「객체 지향 설계와 응용」 객체 지향 프로그래밍. 정의 (1) 객체는 기본적인 구성 단위 (2) 각 객체는 어떤 타입의 인스턴스 (3) 클래스는 상속 관계에 의해 서로 연관. (상속을 사용하지 않는 프로그래밍 기법은 객체 지향 기법이 아니다!) 객체 지향 언어. 정의 (1) 객체를 지원 (2) 모든 객체는 클래스에 속한다. (3) 상속을 지원 부제 : 각 언어의 차이점들.. C와 C++의 차이점? 크게 C 는 절차 지향성 언어, C++ 는 객체 지향성 언어라고 한다. 하지만 사실 C++의 기본은 C이며, 단순히 C를 좀더 편리하게 사용하기 위해서..
2012.01.01 -
마방진.
방진 or 마방진? 영어로 Magic Square. 요약 : 1에서 n2까지의 정수를 n행 n열의 정사각형 모양으로 나열하여 가로·세로·대각선의 합이 전부 같아지도록 한 것. 홀수방진 n=3인 경우, 즉 3방진의 경우를 보기로 들면 다음과 같다. ⑴ 맨 윗줄 중앙에 1을 쓴다. ⑵ 오른쪽 위의 대각선 방향으로 2, 3, 4,…를 차례로 쓴다. ⑶ 수를 쓴 자리가 위쪽으로 가버릴 때는 그 수를 쓸 자리의 열의 맨 아래 칸에 쓴다. ⑷ 수를 쓴 자리가 오른쪽으로 나가버릴 때는 그 수를 쓸 행의 왼쪽 끝 칸에 쓴다. ⑸ 오른쪽 위의 칸에 이미 숫자가 들어 있거나 오른쪽 위의 코너에 왔을 때는 그 수의 바로 아래 칸에 쓴다. 짝수방진 짝수방진을 만드는 일반적인 규칙은 없다. 여기서는 4방진을 만드는 방법을 소개..
2011.12.23 -
백트랙킹(Backtracking) vs 욕심쟁이(Greedy)
백트랙킹 (Backtracking) : 뒤에서 추적한다? 라는 의미의 이 알고리즘은 간단하게 모든 경우의 수를 확인하여 최적의 해를 찾는 방법입니다. ( 보통 재귀함수를 이용해 구현하며, N-Queens, 외판원 문제 등이 있다.) 위 질문에 확실하게 답을 줄 수 있습니다. 하지만 일단 모든 경우의 수를 확인하는 데 걸리는 시간, 또한 재귀 호출을 이용하는 방법 등 많은 시간이 걸리는 방법입니다. 욕심쟁이, 탐욕적 (Greedy) : 이름 그 자체에 핵심을 많이 내포하고 있는데요. 선택한 시점에서의 가장 최고인 것 처럼 보이는 것을 선택하는 방법입니다. 최적의 해는 아니지만 근접한 해와 빠른 처리 시간의 장점을 가지고 있습니다. 하지만 ... [ 동전 교환 문제 ] 1, 5, 12, 50 단위의 동전을 ..
2011.08.02 -
알고리즘 종류. (공부해야할 것들.)
selection sort bubble sort merge sort quick sort insertion sort topological sort sequential search interpolation search binary search DFS Gaussian Elimination BFS LU Decomposition Horner's Rule binary exponential Brute force Divide and conquer Decrease and conquer decrease by a constant decrease by a constant factor virable size decrease Transform and conquer Representation change convex-hull(qu..
2011.07.28 -
소수. ( 판별 & 합 )
소수란? : 1과 자기 자신만으로 나뉘는 1보다 큰 양의 정수 소수 판별 문제 : 임의의 정수를 입력하여 소수를 판별하는 순서도 작성. C언어로는 for( i=2; i
2011.07.17