본문 바로가기

프로그래밍26

[프로그래밍] C언어 포인터(Pointer) 선언 개념과 예제 포인터의 이해 메모리의 주소 값을 가리키는 변수를 뜻합니다. 포인터의 선언 포인터 명 앞에 *를 붙입니다. 데이터형은 그 포인터 변수가 가리키고자 하는 지점의 데이터형에 맞게 선언합니다. 예시) 데이터형 * 포인터명; char *chptr;// char 형을 가리키는 포인터 chptr 선언 int *iptr;// int 형을 가리키는 포인터 iptr 선언 float *fptr;// float 형을 가리키는 포인터 fptr 포인터 연산자 주소(&) 연산자: & 바로 다음에 변수가 오면 그 변수가 저장된 주소를 나타냅니다. &는 수식, 상수, 레지스터 변수에는 사용할 수 없습니다. 단순변수, 배열요소, 포인터 변수, 구조체 변수는 가능합니다. 값 연산자: 실행문일 경우 * 바로 다음에 포인터가 오면 그 포인.. 2023. 3. 10.
[Algorithm] 알고리즘 개념과 종류 알고리즘의 역사 및 개념과 종류에 대해 알아보겠습니다. 알고리즘(Algorithm)? 알고리즘은 9세기 페르시아의 수학자 '아부 압둘라 무하마드 이븐 무사 알콰리즈미(Abu Abdullah Muhammad ibn Musa al-khwarizmi)'의 이름을 라틴어화한 알고리스무스(Algorismus)에서 유래한 표현으로, 어떠한 문제를 해결하기 위해 일련의 명령이나 반복되는 절차입니다. 즉, 문제 풀이에 대한 필요한 계산절차 또는 처리과정의 단계적인 순서를 말하는 것입니다. 정렬 (Sorting) 버블 정렬 삽입 정렬 퀵 정렬 탐색 (Search) 순차 탐색 이진탐색 이진 탐색 트리 레드 블랙 트리 그래프 깊이 우선 탐색 (DFS) 너비 우선 탐색 (BFS) 위상 정렬 최소 신장 트리 프림 알고리즘 크루.. 2023. 3. 6.
[C++] C++과 객체 지향 프로그래밍(OOP) 기초 개념 C++과 객체 지향 프로그래밍 객체지향의 특징 캡슐화 (Encapsulation)와 정보 은닉(Information hiding) C++은 클래스(Class)를 통해서 지원합니다. 사용자는 객체가 내부적으로 동작하는 방법에 대해서는 알거나 신경 쓰지 않아도 됩니다. 사용자는 클래스의 함수 이름과 파라미터(Parameter)의 형식만 알면 됩니다. 상속(Inheritance)과 코드의 재사용 상위 클래스가 가진 속성과 메서드를 하위 클래스가 그대로 물려받아서 사용합니다. C++는 상속을 통해 재사용을 지원합니다. 다형성(Polymorphism) 동일한 부모로부터 상속받은 어떤 함수가 상속받은 클래스(Class)의 특징에 따라서 다르게 동작합니다. 즉, 부모로부터 상속받은 동일한 이름의 메서드(Method).. 2023. 3. 4.
[Python]파이썬 - 문제집(백준 1766) #위상정렬/힙 baekjoon 문제- https://www.acmicpc.net/problem/1766 파이썬: 문제풀이 (위상정렬) - 백준 필요한 알고리즘 - 위상정렬, 힙(heap) 진입 차수가 0인 정점을 큐에 삽입한다. 큐에서 원소를 꺼내 해당 원소와 간선을 제거한다. 제거 이후에 진입차수가 0이 된 정점을 큐에 삽입한다. 큐가 비어질 때까지 2)번과 3)번을 반복한다. 입력 - 첫째줄 총 문제수 N개, 정보 2개 4 2 4 2 3 1 import heapq n, m = map(int, input().split()) array = [[] for i in range(n+1)] indegree = [0] * (n+1) heap = [] for _ in range(m): x, y = map(int, input()... 2023. 3. 2.
반응형