Category

Baekjoon

BOJ 20304 C++

1 minute read

풀이 xor연산을 이용하여 1을 비트마스킹해 옆으로 밀어서 현재의 숫자와 비트가 한자리만 차이나는 수를 구할 수 있다. 예를 들어 3이 있으면 1~20 자리까지 100만은 20자리로 표현가능 0011 //3 1부터 20자리까지 비교할거임 0001 //xor시 0010 0010 //...

BOJ 28683번 C++

1 minute read

풀이 문제에서 한 변이 n이고 나머지 변이 정수인 삼각형의 수를 출력해야한다. 그렇다면 다음과 같은 삼각형들이 있을 것이다.(n포함) a^2 + b^2 = n

BOJ 16920 C++

1 minute read

코드 ```c++ #include <bits/stdc++.h> #define X first #define Y second

BOJ 2206 C++

2 minute read

코드 ```c++ #include <bits/stdc++.h> #define X first #define Y second

BOJ 6593 C++

1 minute read

코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second

BOJ 5427 C++

2 minute read

코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second

BOJ 10026 C++

1 minute read

코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second

BOJ 4179 C++

2 minute read

코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second

BOJ 2178 C++, bfs최단거리

less than 1 minute read

코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second

BOJ 1926 C++

1 minute read

코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second

BOJ 3986, 10799 C++

less than 1 minute read

코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second

BOJ 5430 C++

1 minute read

코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second

BOJ 2493 C++

1 minute read

문제 접근 현재 높이를 읽고 스택 최상단의 높이와 비교합니다. 스택 상단의 높이가 현재 높이보다 작으면 더 높은 탑이 발견될 때까지 스택을 팝(pop)합니다. 스택 상단의 탑 인덱스를 출력합니다. 이는 신호를 수신할 수 있는 탑을 나타냅니다. 현재 탑(높이, 인덱스)을 스택에 푸쉬...

BOJ 10828 C++

1 minute read

연결리스트로 구현한 스택 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;

BOJ 5397 C++

1 minute read

연결리스트 활용 풀이 직접 구현해서 품 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;

BOJ 18110 C++

less than 1 minute read

문제접근 입력받은 n * 0.15의 반올림 만큼 포문을 돌면서 큰수와 작은수를 정렬된 배열에서 차례대로 뺀다. 0일경우 0이나오게 예외 처리 한다. 코드 ```c++ #include <bits/stdc++.h> using namespace std;

BOJ 1764 C++

less than 1 minute read

문제접근 정렬후 이분탐색 코드 ```c++ #include <bits/stdc++.h> #define ll long long

BOJ 2208 C++

less than 1 minute read

문제접근 처음부터 지금까지 다줍는 경우를 저장하는 배열 지금까지 주운것 중에서 가장적은 경우를 저장하는 배열 지금까지 주운 값어치 - 지금까지 최악의 값어치(m) 언제나 0보다 커야하기에 max로 비교

BOJ 2143 C++

1 minute read

문제접근 처음에는 부 배열의 합이 떨어져있는 합도 가능한줄 알았는데 아니였다. 부 배열의 합은 A[i]+…+A[j]를 의미한다. 이것때문에 시간을 오래잡아 먹었다. 풀이는 간단하다. 배열을 입력받고 전체븨 부 배열의 합을 구한다. 그리고 이분탐색으로 target을 t -arr[in...

BOJ 10800 C++

1 minute read

코드 원리 이 코드는 다음과 같이 동작합니다.

BOJ 2616 C++

1 minute read

문제접근 dp와 누적합을 이용해야 합니다. 우선 객차에서의 손님의 수를 누적합으로 저장합니다. int n; cin >> n; for (int i = 1; i <= n; i++) { cin >> t[i]; t[i] += t[i - 1]; } ...

BOJ 25826 C++

3 minute read

문제접근 BOJ 19951 C++의 2차원배열 버전입니다. 같은 크기의 배열을 하나 더 만듭니다. 1 0 0 1 1 1 첫번째 쿼리입니다.

BOJ 19951 C++

less than 1 minute read

문제 접근 N과 똑같은 길이의 배열을 하나 더 만듭니다. 명령들을 한번에 수행하기 의하여 누적합 알고리즘을 이용합니다. {0,0,0,0,0} 1 ~ 5까지 3만큼을 덮으라고 명령합니다. {3,0,0,-3,0} 이렇게 해줍니다. 이유는 다음과 같습니다. 누적합을 사용하면 {3,...

BOJ 3020 C++

1 minute read

문제 접근 석순과 종유석의 누적합 배열을 만듭니다. 그리고 h가 7, 그리고 개똥벌레가 나는 높이가 1일때 부수는 수는 다음과 같습니다. 석순 전체 합 + 종유석 높이가 7이상인수

BOJ 25682 C++

1 minute read

문제접근 (1,1)이 검은색인것을 기준으로 다시 칠해야하는 수를 저장하는 2차원 배열을 만듭니다. k * k - (1,1)이 검은색인 것 기준 다시 칠해야하는 수

BOJ 16139 C++

2 minute read

문제 접근 문자열 길이 20만 질문수 20만 400억이므로 그냥 완전탐색으로는 만점을 받을 수 없습니다. 그러므로 누적합을 이용해야 합니다. 이 문제에서는 다음과 같은 누적합 방식을 이용해야 합니다. a: 0 0 0 0 0 0 1 1 1 1 2 2 2 b: 0 0 0 0 0 ...

BOJ 10660 C++

less than 1 minute read

문제접근 구간합을 이용하여 풀 수 있다. 아래와 같은 방법으로 말이다.

BOJ 10211 C++

less than 1 minute read

문제접근 구간합 알고리즘을 이용하여 풀 수 있다. pre[i] = max(pre[i - 1] + x[i - 1],x[i - 1]);

BOJ 23631 C++

2 minute read

문제접근 우선 이문제는 등차수열의 합을 이용하는 문제입니다. 우선 시간초과가 나지 않으려면 이분탐색 최대 범위를 5000으로 해야합니다. 5000*(5000 + 1) / 2 가 10,000,000보다 크기때문입니다. *등차수열을 이욯하기 때문에. 이 문제에서 이분탐색 해야...

BOJ 23830 C++

1 minute read

문제접근 태영이가 청소를 하지 않아도 되는 $K$의 최솟값을 출력한다. $K$는 이분탐색에서 lowerBonud의 값이 되겠네요. 본문에 제시된것처럼 학생의 점수가 k보다 크면 학생의 점수에서 p를 빼고 작으면 q를 더하죠. 그렇다면 이분탐색의 범위를 이렇게 정해야겠네요.

BOJ 23829 C++

1 minute read

문제접근 이분탐색 + 누적합으로 시간초과를 피할 수 있습니다. 1 3 7 9 10 이렇게 배열이 있을때 4의 위치에서 사진을 찍었다고 해봅시다. 그렇다면 4보다 작은 위치에있는 값들의 점수를 구하는 방법은 1-4, 3-4의 절대값이므로 4보다 작은 위치에있는 사진의 점수는 4겠네요...

BOJ 19845 C++

1 minute read

문제접근 편의상 제거할 수 있는수를 kill이라고 하겠다. 입력받은 넴모의 수를 배열로 받아준다. xKill = arr[y - 1] - (x - 1)과 같다. yKill을 구하는게 이문제의 핵심인데 이분탐색으로 배열에서 x좌표의 값보다 작거나 같은수의 가장 큰 인덱스를 찾으면 된...

BOJ 8983 C++

3 minute read

백준 8983 C++ 풀이 문제 접근 동물들의 위치와 사대의 위치를 이용하여 이분탐색을 하면된다. 사대의 위치 xi와 동물의 위치 (aj, bj) 간의 거리는 xi-aj + bj ...

BOJ 17951 C++

less than 1 minute read

백준 17951 C++ 풀이

Back to top ↑

C++

C/C++ 덱

3 minute read

클래스로 구현한 코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second class Deque { struct Node //...

C/C++ 큐

2 minute read

코드 ```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/C++ 단일연결리스트

6 minute read

연결리스트의 원리 연결리스트는 배열과 다를게 요소들이 연속적이지 않음 다음과 같은 연결리스트의 종류가 있음 배열과 다르게 각요소가 다음 요소의 위치를 담고있는 방식으로 연결이 되어있음 배열의 장단점 장점 인덱스를 통해서 바로 접근 가능 단점 요소를 삽입, 삭제 시 요소를 이동시...

C/C++ 함수 포인터

less than 1 minute read

EX1 #include <stdio.h> #include <stdlib.h> int add(int a, int b) { return a + b; } int main() { int (*p)(int, int); //이러한 방법으로 초기화합니다. p = &am...

C/C++ 배열과 포인터

less than 1 minute read

배열과 포인터 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std;

C/C++ pointers to pointers

less than 1 minute read

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/C++ 포인터 기본2

less than 1 minute read

여러 가지 예를 보겠습니다. 디레퍼런싱 int a; int *p; a = 10; p = &a; //a의 주소 cout << a; //10이 나옴 *p = 12; // dereferencing cout << a; //12가 나옴 int a; int *p...

C/C++ 포인터 기본

less than 1 minute read

포인터를 선언하는 방법 int* p; 모든 포인터 변수는 4 byte의 크기의 표현 범위를 가지고 있다. 64비트의 경우에는 8비트이다. 그런데 왜 포인터에 변수 자료형을 따로 두는 이유는 변수가 시작되는 주소 값에서 얼마만큼의 크기를 읽어드릴지 위한 단위의 지정​하기 위함​이다...

C++ 클래스 정의하고 사용해보기

2 minute read

클래스 비쥬얼 스튜디오에서 클래스를 만들면 그이름으로 헤더파일과 cpp파일이 만들어집니다. 헤더파일은 인터페이스이고 cpp파일은 그곳에 멤버함수를 정의 할 수 있습니다. 헤더 파일을 먼저 살펴보겠습니다.

Back to top ↑

SFML

[SFML] 애니메이션

3 minute read

에니메이션 헤더파일 ```c++ #pragma once #include <SFML\Graphics.hpp> class Anim { public: Anim(sf::Texture* texture, sf::Vector2u imageCount, float switchTime)...

[SFML] 키보드 인풋

1 minute read

키보드 인풋 키보드 인풋을 받는 방법을 이렇습니다.. sf::Keyboard::isKeyPressed

[SFML] 윈도우 열기

1 minute read

SFML에서 윈도우를 여는법 다음과 같이 RenderWindow 윈도우이름()으로 렌더러를 정의합니다.. sf::RenderWindow window(); /** sf::RenderWindow::RenderWindow ( VideoMode mode, const String &...

Back to top ↑

Data Structures

C/C++ 덱

3 minute read

클래스로 구현한 코드 ```c++ #include <bits/stdc++.h> #define ll long long using namespace std; #define X first #define Y second class Deque { struct Node //...

C/C++ 큐

2 minute read

코드 ```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/C++ 단일연결리스트

6 minute read

연결리스트의 원리 연결리스트는 배열과 다를게 요소들이 연속적이지 않음 다음과 같은 연결리스트의 종류가 있음 배열과 다르게 각요소가 다음 요소의 위치를 담고있는 방식으로 연결이 되어있음 배열의 장단점 장점 인덱스를 통해서 바로 접근 가능 단점 요소를 삽입, 삭제 시 요소를 이동시...

Back to top ↑

Security

[악성문서] 오피스 문서의 포멧

less than 1 minute read

OFFICE 문서의 확장자 대표적으로 사용되는 MS OFFICE는 크게 두가지 포맷을 사용합니다. #CFVF (Compound File Binary Format) 과거에 사용했던 포멧 EX) DOC, XLS 파일 시스템을 모사한 개념입니다. FAT를 유사하게 모사한 파일 포멧. C...

악성 문서파일의 구성요소

2 minute read

악성 문서 파일의 구성요소 요즘 해커그룹은 스피어피싱을 사용해서 실제 공격의 시작점을 알림 스피어 피싱은 많은 비중을 차지함. spear phishing 득정 조직이나 개인이 대상인 피싱 공격 기법의 일종 악성 문서나 악성 링크를 첨부하는 방식이 상요됨. ex .hwp .do...

Back to top ↑