전체 글

·정보보안기사
Buffer Overflow Attack Stack Heap 버퍼 오버플로우 공격은 할당된 메모리의 범위를 넘어선 위치에 자료를 읽거나 쓰려고 할 때 발생한다. 버퍼 오버플로우가 발생하면 프로그램의 오작동이 유발되거나, 악의적인 코드를 실행시킴으로써 공격자 프로그램을 통제할 수 있는 권한을 획득하게 된다. 버퍼 오버플로우 공격에는 스택과 힙 버퍼 오퍼블로우가 있다. Stack Frame 스택 프레임을 이해하기 위해서 간단한 소스 코드를 예로 들자면 #include int add(int a, int b) { int x = a, y = b; return (x+y); } int main(int argc, char* argv[]) { int a = 1, b = 2; printf(%d, add(a,b)); ret..
·정보보안기사
SECTION 01 정보보호관리의 개념 정보보호란 -정보의 수집, 가공, 저장, 검색, 송신 ,수신 등에 발생하는 정보의 훼손, 변조, 유출 등을 방지하기 위한 관리적, 기술적 수단 -정보의 가용성과 안정성(보안성)의 균형을 찾는 것이 중요함. -정보의 활용은 정보의 가용성을 극대화시키는 것이고, 정보의 통제는 위협요소를 극소화시키는 것이다. 정보보호의 목표 1.기밀성(비밀성, Confidentiality) -오직 인가된 사람, 프로세스, 시스템 만이 알 필요성에 근거해 시스템에 접근 가능해야한다. -정보는 소유자가 원하는 대로 정보의 비밀이 유지되어야 하고, 소유자의 인가를 받은 사람만이 접근 가능, 인가되지 않은 정보의 공개는 반드시 금지되어야 한다. -기밀성을 보장하는 보안기술에는 접근제어, 암호화..
·백준
https://www.acmicpc.net/problem/3190 이번 시간에는 시뮬레이션 문제인 백준 3190번을 풀어보겠습니다. 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net #include #include int direction_row[4] = { 0, 1, 0, -1 }; // 동 남 서 북 int direction_column[4] = { 1, 0, -1, 0 }; int play_game(std::vector&, std::vector&); int main() { int size = 0; int appl..
·백준
https://www.acmicpc.net/problem/12100 이번 시간에는 백준 12100번 구현 및 dfs에 대해서 풀어보겠습니다. 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net #include #include #include // ToDo // 이 게임은 중간에 공백이 들어갈 수 있음. 나는 무조건 연속된 수가 나온다고 생각하고 짰다. // enum Direction { LEFT, UP, RIGHT, DOWN }; template class Board { public: ..
·백준
이번 시간에는 백준 13460번 BFS를 활용한 구현문제를 풀어보겠습니다. https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net #include #include #include int BFS(std::pair& initial_red, std::pair& initial_blue); std::vector map_r; std::vector map_b; int main() { int N, M; std::ci..
·백준
이번 시간에는 백준 15686번을 풀어보겠습니다. https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net #include #include #include void combination(int level, int begin, int r); int calculate_distance(); static int total = 9999999; std::vector chicken; std::vector home; std::vector tmp;..
·백준
이번에는 백준 2015번 수들의 합에 대한 백준문제를 풀어보겠습니다. https://www.acmicpc.net/problem/2015 2015번: 수들의 합 4 첫째 줄에 정수 N과 K가 주어진다. (1 ≤ N ≤ 200,000, |K| ≤ 2,000,000,000) N과 K 사이에는 빈칸이 하나 있다. 둘째 줄에는 배열 A를 이루는 N개의 정수가 빈 칸을 사이에 두고 A[1], A[2], ..., A[N]의 순서로 www.acmicpc.net #include #include #include int main() { std::ios::sync_with_stdio(0), std::cin.tie(0), std::cout.tie(0); long long N, K, sum = 0; std::cin >> N >>..
·백준
백준 2960번 에라토스테네스의 체에 대한 백준 문제를 풀어보겠습니다. https://www.acmicpc.net/problem/2960 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net 에라토스테네스의 체는 N보다 작거나 같은 모든 소수를 찾는 유명한 알고리즘이다. 이 알고리즘은 다음과 같다. 2부터 N까지 모든 정수를 적는다. 아직 지우지 않은 수 중 가장 작은 수를 찾는다. 이것을 P라고 하고, 이 수는 소수이다. P를 지우고, 아직 지우지 않은 P의 배수를 크기 순서대로 지운다. 아직 모든 수를 지우지 않았다면, 다시 2번 단계로 간다. N, K가 주어졌을 때, K번째 지우는 수를 구하는 프..
·백준
오늘 포스팅은 기초 알고리즘인 투 포인터를 이용한 간단한 백준문제를 풀어보겠습니다. https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net #include #include int main() { int N, M; std::cin >> N >> M; std::vector tmp(N, 0); for (auto& itr : tmp) { int tp; std::cin >> tp; itr = std::move(tp); ..
·백준
이번 포스팅은 9663번 Backtracking입니다. 아래 url를 클릭하시면 백준 사이트에서 문제를 볼 수 있습니다.https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. #include #include void Dfs(std::vector &tmp, int idx); bool promisi..
이야기prog
이야기