(백준/C++) 11399_ATM
11399번: ATM (acmicpc.net) 문제는 탐욕(그리디) 알고리즘으로 풀 수 있는 문제입니다. 탐욕 알고리즘(Greedy Algorithm)이란, 매 순간 최적이라고 생각되는 방법을 선택하는 방식으로 문제를 해결하는 알고리즘입니다. 즉, 다른 경우의 수가 없이 현 문제에서 가장 좋아 보이는 것을 선택해 나가다보면 문제가 풀리는 알고리즘 ...
11399번: ATM (acmicpc.net) 문제는 탐욕(그리디) 알고리즘으로 풀 수 있는 문제입니다. 탐욕 알고리즘(Greedy Algorithm)이란, 매 순간 최적이라고 생각되는 방법을 선택하는 방식으로 문제를 해결하는 알고리즘입니다. 즉, 다른 경우의 수가 없이 현 문제에서 가장 좋아 보이는 것을 선택해 나가다보면 문제가 풀리는 알고리즘 ...
탐욕 알고리즘(Greedy Algorithm)이란, 매 순간 최적이라고 생각되는 방법을 선택하는 방식으로 문제를 해결하는 알고리즘입니다. 즉, 다른 경우의 수가 없이 현 문제에서 가장 좋아 보이는 것을 선택해 나가다보면 문제가 풀리는 알고리즘 입니다. 1931번: 회의실 배정 (acmicpc.net) 문제는 어떻게 탐욕 알고리즘으로 풀 수 있는거지...
C++에서 “값 범주”라고도 불리는 이 L-Value와 R-Value는 “이동”의 개념이 생기면서 좀 더 세분화 되었습니다. 그리고 좀 더 복잡해졌습니다. 이 세분화된 구분을 정리하기 전, 먼저 가볍게 L-Value와 R-Value에 대해서 이해하고 넘어가도록 하겠습니다. 그리고 저는 “이동”이라는 용어를 먼저 사용하지 않고 정리하도록 하겠습니다....
11047번: 동전 0 (acmicpc.net) 문제는 탐욕 알고리즘의 대표격인 문제로, 탐욕 알고리즘으로 풀 수 있는 문제입니다. 탐욕 알고리즘(Greedy Algorithm)이란, 매 순간 최적이라고 생각되는 방법을 선택하는 방식으로 문제를 해결하는 알고리즘입니다. 즉, 다른 경우의 수가 없이 현 문제에서 가장 좋아 보이는 것을 선택해 나가다보...
inline 함수란, 컴파일 타임에 함수 호출 위치에 함수 전체 코드를 삽입하는 것으로, 함수 호출에 의한 오버헤드를 줄이기 위해 사용되는 함수입니다. 따라서, 너무 많은 인라인 함수 사용은 프로그램의 크기가 커지게 될 수 있습니다. 가상 메모리를 사용하는 환경에서는 페이징 횟수가 늘어나 성능에 영향을 줄 수 있다고도 합니다. 이 인라인 함수를 선...
11660번: 구간 합 구하기 5 (acmicpc.net) 문제는 2차원 배열에서 누적 합을 통해 특정 구간의 합을 빠르게 계산하기 위한 방법을 묻는 문제입니다. 누적 합 문제는 구간에 있는 수의 합을 빠르게 계산하기 위한 방법입니다. 이를 이용하면 $O(N^2)$의 시간 복잡도로 누적 합 배열을 생성하고, 특정 구간의 합을 $O(1)$의 시간 복...
Call by Value, Call by Address, Call by Reference는 함수 호출 메커니즘에서 매개변수를 전달하는 세 가지 주요 방식으로, 실제 매개변수와 형식 매개변수가 어떻게 상호작용 하는지, 어떻게 쓰이는지에 따라 구분한 방식입니다. ‘Call by’는 함수 호출을 의미하며 Value, Address, Reference는 각...
RAII(Resource Acquisition Is Initialization)는 주로 객체 지향 프로그래밍에서 자원을 효과적으로 관리하기 위한 패러다임입니다. MS Learn에 적혀있는 글을 읽어보면 MS에서는 “개체가 리소스를 소유한다는 원칙을 ‘리소스 획득은 초기화’ 또는 RAII라고도 합니다.” 라고 적혀있는 것을 볼 수 있습니다. 즉, R...
개요 16139번: 인간-컴퓨터 상호작용 (acmicpc.net) 문제는 특정 문자열 내에서 주어진 구간에 특정 알파벳이 몇 번 나타나는지 빠르게 구하는 문제로 누적 합 문제 카테고리에 속해 있습니다. 누적 합 문제는 구간에 있는 수의 합을 빠르게 계산하기 위한 방법입니다. 이게 왜 누적 합 문제인지 헷갈릴 수도 있지만, 알파벳이 나타나는 횟수를...
기존 C/C++ 에서는 동적으로 할당 받은 메모리는 사용이 끝난 경우 반드시 해제해줘야 합니다. 만약, 메모리를 해제해주지 않으면 메모리 누수(memory leak)가 발생할 수 있습니다. 스마트 포인터(smart pointer)는 이런 프로그래머의 부담을 줄여줄 수 있는, 포인터처럼 동작하는 클래스 템플릿으로, 메모리 관리를 자동화하여 메모리 누수...