전체 글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. 이전 1 2 3 4 ··· 9 다음