C/C++ 함수 포인터
EX1 #include <stdio.h> #include <stdlib.h> int add(int a, int b) { return a + b; } int main() { int (*p)(int, int); //이러한 방법으로 초기화합니다. p = &am...
EX1 #include <stdio.h> #include <stdlib.h> int add(int a, int b) { return a + b; } int main() { int (*p)(int, int); //이러한 방법으로 초기화합니다. p = &am...
EX1 ```c int* add(int* a, int* b) { int c = *a + *b; return &c; }
스택과 힙 ```c++ #include <bits/stdc++.h> #define ll long long
2차원 배열 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
main ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
EX ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
배열과 포인터 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
함수 인수에서의 포인터 Call by Value ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
pointer to pointer int a = 5; int* p = &a ; int** p2 = &p; printf("%d, %d, %d\n",&a, &p, p2); printf("%d, %d", *p, *p2); ...
포인터 타입이 있는 이유 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
여러 가지 예를 보겠습니다. 디레퍼런싱 int a; int *p; a = 10; p = &a; //a의 주소 cout << a; //10이 나옴 *p = 12; // dereferencing cout << a; //12가 나옴 int a; int *p...
포인터를 선언하는 방법 int* p; 모든 포인터 변수는 4 byte의 크기의 표현 범위를 가지고 있다. 64비트의 경우에는 8비트이다. 그런데 왜 포인터에 변수 자료형을 따로 두는 이유는 변수가 시작되는 주소 값에서 얼마만큼의 크기를 읽어드릴지 위한 단위의 지정하기 위함이다...
클래스 비쥬얼 스튜디오에서 클래스를 만들면 그이름으로 헤더파일과 cpp파일이 만들어집니다. 헤더파일은 인터페이스이고 cpp파일은 그곳에 멤버함수를 정의 할 수 있습니다. 헤더 파일을 먼저 살펴보겠습니다.
EX ```c++ int x = 10; int y = 20; const int* p = &x; // pointer to const int
EX1 #include <stdio.h> #include <stdlib.h> int add(int a, int b) { return a + b; } int main() { int (*p)(int, int); //이러한 방법으로 초기화합니다. p = &am...
EX1 ```c int* add(int* a, int* b) { int c = *a + *b; return &c; }
스택과 힙 ```c++ #include <bits/stdc++.h> #define ll long long
2차원 배열 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
main ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
EX ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
배열과 포인터 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
함수 인수에서의 포인터 Call by Value ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
pointer to pointer int a = 5; int* p = &a ; int** p2 = &p; printf("%d, %d, %d\n",&a, &p, p2); printf("%d, %d", *p, *p2); ...
포인터 타입이 있는 이유 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
여러 가지 예를 보겠습니다. 디레퍼런싱 int a; int *p; a = 10; p = &a; //a의 주소 cout << a; //10이 나옴 *p = 12; // dereferencing cout << a; //12가 나옴 int a; int *p...
포인터를 선언하는 방법 int* p; 모든 포인터 변수는 4 byte의 크기의 표현 범위를 가지고 있다. 64비트의 경우에는 8비트이다. 그런데 왜 포인터에 변수 자료형을 따로 두는 이유는 변수가 시작되는 주소 값에서 얼마만큼의 크기를 읽어드릴지 위한 단위의 지정하기 위함이다...
문제접근 처음부터 지금까지 다줍는 경우를 저장하는 배열 지금까지 주운것 중에서 가장적은 경우를 저장하는 배열 지금까지 주운 값어치 - 지금까지 최악의 값어치(m) 언제나 0보다 커야하기에 max로 비교
문제접근 처음에는 부 배열의 합이 떨어져있는 합도 가능한줄 알았는데 아니였다. 부 배열의 합은 A[i]+…+A[j]를 의미한다. 이것때문에 시간을 오래잡아 먹었다. 풀이는 간단하다. 배열을 입력받고 전체븨 부 배열의 합을 구한다. 그리고 이분탐색으로 target을 t -arr[in...
코드 원리 이 코드는 다음과 같이 동작합니다.
문제접근 dp와 누적합을 이용해야 합니다. 우선 객차에서의 손님의 수를 누적합으로 저장합니다. int n; cin >> n; for (int i = 1; i <= n; i++) { cin >> t[i]; t[i] += t[i - 1]; } ...
문제접근 BOJ 19951 C++의 2차원배열 버전입니다. 같은 크기의 배열을 하나 더 만듭니다. 1 0 0 1 1 1 첫번째 쿼리입니다.
문제 접근 N과 똑같은 길이의 배열을 하나 더 만듭니다. 명령들을 한번에 수행하기 의하여 누적합 알고리즘을 이용합니다. {0,0,0,0,0} 1 ~ 5까지 3만큼을 덮으라고 명령합니다. {3,0,0,-3,0} 이렇게 해줍니다. 이유는 다음과 같습니다. 누적합을 사용하면 {3,...
문제 접근 석순과 종유석의 누적합 배열을 만듭니다. 그리고 h가 7, 그리고 개똥벌레가 나는 높이가 1일때 부수는 수는 다음과 같습니다. 석순 전체 합 + 종유석 높이가 7이상인수
문제접근 (1,1)이 검은색인것을 기준으로 다시 칠해야하는 수를 저장하는 2차원 배열을 만듭니다. k * k - (1,1)이 검은색인 것 기준 다시 칠해야하는 수
문제 접근 문자열 길이 20만 질문수 20만 400억이므로 그냥 완전탐색으로는 만점을 받을 수 없습니다. 그러므로 누적합을 이용해야 합니다. 이 문제에서는 다음과 같은 누적합 방식을 이용해야 합니다. a: 0 0 0 0 0 0 1 1 1 1 2 2 2 b: 0 0 0 0 0 ...
문제접근 구간합을 이용하여 풀 수 있다. 아래와 같은 방법으로 말이다.
문제접근 구간합 알고리즘을 이용하여 풀 수 있다. pre[i] = max(pre[i - 1] + x[i - 1],x[i - 1]);
문제접근 정렬후 이분탐색 코드 ```c++ #include <bits/stdc++.h> #define ll long long
문제접근 우선 이문제는 등차수열의 합을 이용하는 문제입니다. 우선 시간초과가 나지 않으려면 이분탐색 최대 범위를 5000으로 해야합니다. 5000*(5000 + 1) / 2 가 10,000,000보다 크기때문입니다. *등차수열을 이욯하기 때문에. 이 문제에서 이분탐색 해야...
문제접근 태영이가 청소를 하지 않아도 되는 $K$의 최솟값을 출력한다. $K$는 이분탐색에서 lowerBonud의 값이 되겠네요. 본문에 제시된것처럼 학생의 점수가 k보다 크면 학생의 점수에서 p를 빼고 작으면 q를 더하죠. 그렇다면 이분탐색의 범위를 이렇게 정해야겠네요.
문제접근 이분탐색 + 누적합으로 시간초과를 피할 수 있습니다. 1 3 7 9 10 이렇게 배열이 있을때 4의 위치에서 사진을 찍었다고 해봅시다. 그렇다면 4보다 작은 위치에있는 값들의 점수를 구하는 방법은 1-4, 3-4의 절대값이므로 4보다 작은 위치에있는 사진의 점수는 4겠네요...
문제접근 편의상 제거할 수 있는수를 kill이라고 하겠다. 입력받은 넴모의 수를 배열로 받아준다. xKill = arr[y - 1] - (x - 1)과 같다. yKill을 구하는게 이문제의 핵심인데 이분탐색으로 배열에서 x좌표의 값보다 작거나 같은수의 가장 큰 인덱스를 찾으면 된...
문제접근
백준 12099 C++ 풀이
백준 8983 C++ 풀이 문제 접근 동물들의 위치와 사대의 위치를 이용하여 이분탐색을 하면된다. 사대의 위치 xi와 동물의 위치 (aj, bj) 간의 거리는 xi-aj + bj ...
백준 17951 C++ 풀이
에니메이션 헤더파일 ```c++ #pragma once #include <SFML\Graphics.hpp> class Anim { public: Anim(sf::Texture* texture, sf::Vector2u imageCount, float switchTime)...
스프라이트 텍스쳐를 나누는 법
코드
코드 ```c++ #include <SFML/Graphics.hpp> #include
키보드 인풋 키보드 인풋을 받는 방법을 이렇습니다.. sf::Keyboard::isKeyPressed
텍스트 이벤트
도형 RectangleShape정의. ```c++ #include <SFML/Graphics.hpp> #include
윈도우 이벤트
SFML에서 윈도우를 여는법 다음과 같이 RenderWindow 윈도우이름()으로 렌더러를 정의합니다.. sf::RenderWindow window(); /** sf::RenderWindow::RenderWindow ( VideoMode mode, const String &...
풀이 xor연산을 이용하여 1을 비트마스킹해 옆으로 밀어서 현재의 숫자와 비트가 한자리만 차이나는 수를 구할 수 있다. 예를 들어 3이 있으면 1~20 자리까지 100만은 20자리로 표현가능 0011 //3 1부터 20자리까지 비교할거임 0001 //xor시 0010 0010 //...
코드 ```c++ #include <bits/stdc++.h> #define X first #define Y second
코드 ```c++ #include <bits/stdc++.h> #define X first #define Y second
코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second
코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second
코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second
코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second
코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second
코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second
코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second
코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second
클래스로 구현한 코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second class Deque { struct Node //...
코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second class node { public: int data; no...
코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
연결리스트의 원리 연결리스트는 배열과 다를게 요소들이 연속적이지 않음 다음과 같은 연결리스트의 종류가 있음 배열과 다르게 각요소가 다음 요소의 위치를 담고있는 방식으로 연결이 되어있음 배열의 장단점 장점 인덱스를 통해서 바로 접근 가능 단점 요소를 삽입, 삭제 시 요소를 이동시...
코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second
코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second
문제 접근 현재 높이를 읽고 스택 최상단의 높이와 비교합니다. 스택 상단의 높이가 현재 높이보다 작으면 더 높은 탑이 발견될 때까지 스택을 팝(pop)합니다. 스택 상단의 탑 인덱스를 출력합니다. 이는 신호를 수신할 수 있는 탑을 나타냅니다. 현재 탑(높이, 인덱스)을 스택에 푸쉬...
연결리스트로 구현한 스택 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
문제접근 입력받은 n * 0.15의 반올림 만큼 포문을 돌면서 큰수와 작은수를 정렬된 배열에서 차례대로 뺀다. 0일경우 0이나오게 예외 처리 한다. 코드 ```c++ #include <bits/stdc++.h> using namespace std;
문제접근 우선 이문제는 등차수열의 합을 이용하는 문제입니다. 우선 시간초과가 나지 않으려면 이분탐색 최대 범위를 5000으로 해야합니다. 5000*(5000 + 1) / 2 가 10,000,000보다 크기때문입니다. *등차수열을 이욯하기 때문에. 이 문제에서 이분탐색 해야...
연결리스트로 구현한 스택 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
연결리스트 활용 풀이 직접 구현해서 품 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;
코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second
풀이 문제에서 한 변이 n이고 나머지 변이 정수인 삼각형의 수를 출력해야한다. 그렇다면 다음과 같은 삼각형들이 있을 것이다.(n포함) a^2 + b^2 = n
풀이 문제에서 한 변이 n이고 나머지 변이 정수인 삼각형의 수를 출력해야한다. 그렇다면 다음과 같은 삼각형들이 있을 것이다.(n포함) a^2 + b^2 = n
EX ```c++ #include