본문 바로가기

Programming51

C언어 알고리즘&자료구조 #0 세 값의 최대/최소를 구하는 알고리즘 #최댓값을 구하는 알고리즘 변수 a,b,c의 최댓값을 구하는 알고리즘에 대해서 알아보자. 다음 소스코드는 사용자로 부터 main 함수에서 X,Y,Z의 값을 입력받은 후 MAX함수로 보내 최댓값을 구하는 알고리즘이다. #include int MAX(int x, int y, int z); int main(void) { int x, y, z; printf("Calculate Max\n"); printf("X = "); scanf_s("%d", &x); printf("Y = "); scanf_s("%d", &y); printf("Z = "); scanf_s("%d", &z); printf("Max is %d\n", MAX(x,y,z)); return 0; } int MAX(int x, int y, int z) .. 2021. 2. 3.
[C++] #5 참조자(Reference)와 함수 #5 참조자와 함수 omyodevelop.tistory.com/64 참조자의 기본 개념에 대해 알고있다면, 보지 않아도 됩니다. ■ 목차 #1 참조자와 함수 #2 참조자를 이용한 함수와, const 키워드 #3 반환형이 참조형인 함수 #1 참조자와 함수 C언어에서, 함수의 호출방식은 Call-by-value , Call-by-reference 2가지로 나뉜다는 것을 공부했을 것이다. Call-by-value 로 선언된 함수의 내부에서, 함수외부에 선언된 변수의 접근이 불가능하기에, 선언한 함수 블럭 안에서, 외부의 변수에 접근하고자 한다면, Call-by-reference 형태로 함수를 선언 해야만 한다. 그런데, C++에서는 Call-by-reference 함수 선언 방식이 2가지가 존재한다. 1. 주.. 2021. 1. 2.
[C++] #4 참조자(Reference) #4 참조자(Reference) ■ 목차 #1 참조자(Reference)의 이해 #2 참조자 선언 규칙 #1 참조자(Reference)의 이해 참조자란 자신이 참조하는 변수를 대신하는 또 하나의 이름, 즉 별칭과도 같다. int val1 = 2021; int &val2 = val1; 다음과 같이 선언하면, val1 메모리 공간에, val2 라는 이름(별칭)이 하나 더 붙게 된다. val2는 val1의 참조자가 되며, 기능과 연산의 결과가 변수와 동일하다. 하지만, C++에서는 참조자와 변수를 구분한다. val2 = 1000 다음 문장을 실행하면, val1의 값도 1000으로 초기화된다. 그리고, 참조자는 참조하는 변수와 동일한 메모리 공간을 가리키기에, cout 2021. 1. 2.
[BOJ] C/C++ 1912 "연속합" # 풀이 앞에서 부터, 차례로 값을 더해 온 값들 중 최대가 되는 값(tmp)과, 새로운 값(dp[i])를 비교하여, 더 큰 값을 tmp에 저장하여 출력 # 소스코드 #include #include using namespace std; long long arr[100001]; long long dp[100001]; int main() { int n; long long tmp; //input cin >> n; for (int i = 0;i > arr[i]; } //init dp[0] = arr[0]; tmp = arr[0]; //cal for (int i = 1;i < n;i++) { dp[i] = max(dp[i - 1] + arr[i], arr[i]); tmp = max(dp[i], tmp); } cout 2020. 12. 28.
[BOJ] C/C++ 11055 "가장 큰 증가 부분수열" 소스코드/풀이 #풀이 blog.naver.com/cdi098/222187988514 #문제출처 www.acmicpc.net/problem/11055 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수 www.acmicpc.net #소스코드 #include #include using namespace std; int n, arr[1001], dp[1001]; int main() { cin >> n; for (int i = 1;i > arr[i]; dp[i] = arr[i]; for (int j = 1.. 2020. 12. 28.
[BOJ] C/C++ 11053 "가장 긴 증가하는 부분수열" [BOJ] C/C++ 11053 "가장 긴 증가하는 부분수열" 문제풀이 난이도 : SILVER2 # 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. # 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) # 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. # 소스코드 #include using namespace std; int dp[1001]; .. 2020. 12. 28.