프로그래밍에서 변수는 데이터를 저장할 수 있는 공간을 의미합니다. 정수, 실수, 문자열 등 다양한 형태의 데이터를 저장할 수 있습니다. 예제를 통해 실제 어떻게 변수가 활용되는지 살펴봅시다. #include int main() { int num; // 정수(int) 형태의 num 이라는 이름의 변수 선언한다. num=10; // num에 10이라는 값을 저장한다. = 는 대입 연산자이며 오른쪽 값을 왼쪽 변수에 저장하는 역할을 한다. printf("%d\n",num); // printf 함수에서 서식문자를 지정해서 num에 저장된 값을 출력할 수 있다. 10 int a,b; // 여러 변수를 동시에 선언할 수도 있다. int c=20,d=30; // 변수 선언과 동시에 값을 할당할 수 있다. printf..
https://algospot.com/judge/problem/read/FENCE algospot.com :: FENCE 울타리 잘라내기 문제 정보 문제 너비가 같은 N개의 나무 판자를 붙여 세운 울타리가 있습니다. 시간이 지남에 따라 판자들이 부러지거나 망가져 높이가 다 달라진 관계로 울타리를 통째로 교체 algospot.com 각각의 높이가 다른 울타리에서 최대 넓이의 직사각형을 찾는 문제이다. 여러 방법으로 풀 수 있지만 여기서는 분할 정복으로 풀어보도록 하자. 전체 판자를 절반으로 나눈다고 하자. 그러면 우리가 찾는 최대 직사각형은 다음 세 가지 중 하나에 속한다. 1. 가장 큰 직사각형을 왼쪽 부분 문제에서만 잘라낼 수 있다. 2. 가장 큰 직사각형을 오른쪽 부분 문제에서만 잘라낼 수 있다. 3..
https://algospot.com/judge/problem/read/QUADTREE algospot.com :: QUADTREE 쿼드 트리 뒤집기 문제 정보 문제 대량의 좌표 데이터를 메모리 안에 압축해 저장하기 위해 사용하는 여러 기법 중 쿼드 트리(quad tree)란 것이 있습니다. 주어진 공간을 항상 4개로 분할해 재귀적 algospot.com 문자열을 가리키는 포인터를 하나씩 뒤로 옮겨가면서 재귀호출한다. 분할한 부분의 전체가 흰색이거나 검은색일 경우 뒤집어도 똑같은 패턴이므로 그대로 리턴한다. 그게 아니라면 다시 분할한다. 위와 아래 조각들이 바뀐 패턴이 최종 결과이다. #include #include using namespace std; string reverse(string::itera..