본문 바로가기

전체 글33

다익스트라 알고리즘 1.기본개념다익스트라 알고리즘은 그래프에서 한 정점에서 다른 모든 정점으로 가는 최단 경로를 찾는 알고리즘이다. 가중치가 있는 방향 그래프 또는 무방향 그래프에서 작동하며, 음수 가중치는 허용되지 않는다. 이 알고리즘은 주로 우선순위 큐를 사용하여 효율적으로 최단 경로를 찾는다. 다익스트라 알고리즘의 주요 특징:시작 정점에서 다른 모든 정점으로의 최단 경로를 계산그리디 알고리즘의 일종으로, 매 단계에서 가장 비용이 적은 경로를 선택우선순위 큐를 사용하여 최단 경로를 효율적으로 갱신 2. 구현 예제class PriorityQueue { constructor() { this.values = []; } enqueue(val, priority) { this.val.. 2024. 7. 12.
Max-Heap 알고리즘 1.기본개념Max-Heap은 이진 트리의 일종으로, 부모 노드가 자식 노드보다 항상 크거나 같은 값을 가지는 특성을 가짐Max-Heap의 규칙:완전 이진 트리(Complete Binary Tree): 마지막 레벨을 제외한 모든 레벨이 완전히 채워져 있으며, 마지막 레벨은 왼쪽에서 오른쪽으로 채워짐부모 노드의 값이 자식 노드의 값보다 크거나 같음Max-Heap 배열로 표현인덱스 i의 노드는 다음과 같은 자식 노드와 부모 노드의 관계를 가짐왼쪽 자식 노드: 2i + 1오른쪽 자식 노드: 2i + 2부모 노드: (i - 1) // 2 ( // : 정수 나눗셈 연산자 - 소수점 이하를 버리고 정수 부분만을 반환)Index: 0 1 2 3 4 5 6 7 8Array: [20, 15, 18, 8, 10, 5, 7,.. 2024. 7. 12.
C++ 을 시작하기 앞서 간단한 소개 1. C++이란 C++의 정의와 기본 개념 소개 C++은 C 언어의 확장으로, 객체 지향 프로그래밍과 절차적 프로그래밍을 모두 지원하는 프로그래밍 언어이다. 객체 지향 프로그래밍: 현실 세계의 개념을 프로그램에 반영할 수 있게 해주며, 코드의 재사용성과 유지보수성을 높여준다. 절차적 프로그래밍: 명령어의 집합으로 프로그램을 구성하는 방식으로, 일련의 절차를 따라 순차적으로 실행된다. C++의 역사와 발전 과정 C++은 1980년대 초에 Bjarne Stroustrup에 의해 개발되었다. 초기에는 C with Classes라는 이름으로 시작했으며, 이후에 C++로 이름이 변경되었다. C++은 지속적인 발전을 거쳐 표준화된 형태로 발표되었고, 현재는 ISO 표준으로 사용되고 있다. 2. C++의 주요 특징들.. 2023. 10. 14.
교환학생 2주차 9월 11일 오늘은 월요일!! 오늘도 여느때와 다름없이 프로젝트하러 학교에 가서 프로젝트를 한 다음 집으로 돌아와서 장을 보러 갔다. 그리고 운동을 열심히 하기 위해서 프로틴을 샀다!! ㅎㅎㅎ 그리고 저녁을 만들어 먹었는데 점점 실력이 느는것같다 ㅋㅋㅋㅋ 9월 12일 오늘도 딱히 특별할일 없이 한즈로 가서 프로젝트를 한 후 학교로 가서 운동을 하고 난 후 집에 돌아와서 처음으로 빨래를 돌렸다!!! 처음에 빨래를 어떻게 돌려야 될지 몰라서 한참 생각하고 번역기를 돌렸지만 드디어 할 줄 알게 되었다 ㅎㅎ 세탁기에 대한 정보는 따로 올리겠다. 9월 13일 아침부터 날씨가 장난아니었다..ㄷㄷㄷ 그러나 학교갈때쯤에는 다시 비가 그치고 오후에는 날씨가 좋아졌다. 역시 오락가락한 네덜란드 날씨.. 요즘 너무 간식거리.. 2023. 9. 15.