[C언어/C++] auto 키워드 완벽 정리 - 개념, 원리, 사용법, 예제, 주의사항
C++에서 auto 키워드는 변수의 타입을 자동으로 추론해주는 기능을 제공합니다. C++11부터 도입된 이 기능은 코드의 가독성을 높이고, 유지보수를 용이하게 만드는 중요한 역할을 합니다. 본 포스팅에서는 auto 키워드의 개념부터 사용법, 동작 원리, 예제, 그리고 주의해야 할 사항까지 상세하게 정리하겠습니다. 1. auto 키워드란?auto 키워드는 컴파일러가 변수의 타입을 자동으로 결정하도록 합니다. 즉, 개발자가 명시적으로 타입을 지정하지 않아도, 변수의 초기값을 기반으로 타입이 결정됩니다.auto를 사용한 변수 선언 예제#include using namespace std;int main() { auto x = 10; // int로 추론됨 auto y = 3.14; ..
2025. 2. 22.
[C언어/C++] STL Iterator 총정리 - 개념, 원리, 사용법, 시간복잡도, 코딩 테스트 활용법
코딩 테스트에서 STL을 활용하면 효율적인 자료구조 및 알고리즘 구현이 가능합니다. STL을 사용할 때 가장 중요한 개념 중 하나가 바로 Iterator(반복자)입니다. 모든 STL 컨테이너(queue, stack, map, unordered_map 등)에서 iterator를 사용하기 때문에, 이를 먼저 익혀두는 것이 중요합니다. 이번 포스팅에서는 iterator의 개념부터 사용법, 시간 복잡도, 그리고 코딩 테스트에서 자주 쓰이는 패턴까지 완벽히 정리하겠습니다. 1. Iterator란?Iterator(반복자)는 STL 컨테이너 내부 요소를 순회하는 데 사용되는 객체입니다. 배열의 인덱스를 직접 사용하는 대신, iterator를 활용하면 더 범용적인 코드 작성이 가능합니다.Iterator의 역할컨테이너..
2025. 2. 22.
힙을 활용한 다익스트라 알고리즘 (Dijkstra's Algorithm) - 개념, 원리, 동작예시, 시간복잡도, C언어, Java, Python 예제코드
다익스트라 알고리즘은 최단 경로를 찾는 강력한 알고리즘이지만, 기본적인 구현 방식은 시간 복잡도가 O(V^2)로 효율적이지 않을 수 있습니다. 이에 대한 개선 방법으로 우선순위 큐(Priority Queue) 또는 힙(Heap) 을 활용한 다익스트라 알고리즘을 적용하면 시간 복잡도를 O((V + E) log V)로 줄일 수 있습니다. 본 글에서는 힙을 활용한 다익스트라 알고리즘의 개념, 원리, 동작 예시, 그리고 C, Java, Python 예제 코드를 상세히 다룹니다. 0. 힙의 원리오늘 포스팅은 힙에 대한 이해를 바탕으로 작성했습니다. 이 글을 읽기 전에 힙에 대해 먼저 숙지하시고 오시기를 추천드립니다. 힙에 대한 자세한 설명은 아래 링크에 작성했습니다. 2023.03.12 - [자료구조] - H..
2025. 2. 10.
다익스트라 알고리즘(Dijkstra's Algorithm) 총 정리 - 개념, 원리, 동작 예시, 시간복잡도, 장단점, 주의점, C언어, Java, Python 예시코드
다익스트라 알고리즘은 최단 경로를 찾는 대표적인 알고리즘으로, 그래프에서 하나의 시작 정점에서 다른 모든 정점까지의 최단 거리를 계산하는 데 사용됩니다. 이번 글에서는 다익스트라 알고리즘의 개념, 원리, 동작 과정, 시간 복잡도, 장단점, 주의점, 그리고 C, Java, Python 예제 코드를 자세히 다루겠습니다. 1. 다익스트라 알고리즘이란?다익스트라 알고리즘은 가중 그래프(Weight Graph)에서 특정한 한 정점에서 다른 모든 정점까지의 최단 경로를 찾는 알고리즘입니다. 탐욕적인 접근법(Greedy Algorithm)을 기반으로 하며, 음의 가중치를 가지지 않는 그래프에서만 사용할 수 있습니다. 2. 다익스트라 알고리즘의 원리다익스트라 알고리즘은 다음과 같은 원리로 동작합니다.출발 노드를 ..
2025. 2. 7.