STUDY(62)
-
Fstack-protector-strong option
Fstack-protector-strong option은 gcc compile option 중 하나이다. stack 보호 기능을 강화하기 위해 사용됨. 이 옵션은 프로그램의 stack frame에 보안 관련 체크를 추가하여, stack buffer overflow 공격으로부터 프로그램을 보호하는데 도움을 준다. ‘-fstack-protector-strong’ 옵션은 다음과 같은 방식으로 작동한다. 1. 함수의 stack frame에 “canary”라고 불리는 random 값을 삽입한다. 이 값은 함수가 호출될때 생성, 함수가 반환될때 검사된다. 2. 함수가 반환되기 전에 이 값이 변경되었는지 확인한다. 만약 canary 값이 변경되었다면, 이는 버퍼오버플로우가 발생했음을 의미한다. 프로그램은 오류 메시지..
2024.02.19 -
linux kernel 용어 및 정리 모음
* OOM Score 란? > Out of memory 의 약자 . OOM_score 값에 따라 먼저 kill 할 process 순위가 정해짐. * Mmap & munmap ? * mmap 은, fd 가 가리키는 객체를 file 에서 offset byte 지점을 기준으로, len byte만큼 memory 에 mapping 하도록 kernel 에 요청한다. * mmunmap : mmap() 으로 만들어진 mapping을 제거함. # sample : mmap(NULL, sizeof(fs_stream_buffer_t) * 5, PROT_READ | PROT_WRITE, MAP_SHARED, Devicefd, 0); * stat ? > stat(“/mnt/vendor/nvdata”, &buf); —-> this..
2023.12.26 -
1859. 백만장자 프로젝트 ( D2 ) - C++
이게 ... D2인데 LeetCode에서는 비슷한 문제가 아마 미디엄이었던가..? Easy-Medium 수준이었던듯. https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5LrsUaDxcDFAXc&categoryId=AV5LrsUaDxcDFAXc&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=CCPP&select-1=2&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com #..
2022.09.06 -
Maximum Depth of BT(Binary Tree)
Given a binary tree, find height of it. Height of empty tree is -1, height of tree with one node is 0 and height of below tree is 2. ( root node 는 0으로 카운트해서 -1을 해주는 거군요. 그래서 아래의 tree 의 depth 는 2임 ! ) maxDepth() 의 pseudo code detail 을 한번 살펴보자. 거꾸로다 거꾸로! 아래의 4,5번부터 count 한다. 4,5는 자식이 없으니 0, 2는 자식(4,5) 이 있으니 1, 1은 2,3이라는 자식이 있으니 2가된다. maxDepth() 1. If tree is empty then return -1. 2. Else ! ( a ) G..
2022.08.30 -
C++ - Stringstream
The stringstream class is extremly useful in parsing input. To use stringstream, we need to include sstream header file. StringStream 은, 공백과 \n 을 제외한 문자열을 빼내는데 유용함. : Read something from the stringstream object. 예제 1. geeks for geeks geeks 를 space 로 나눈 count 값 ! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 // Example program #include #include #include using namespace s..
2022.08.23 -
unordered_map vs map in C++
map (like set) is an ordered sequence of unique keys whereas in unordered_map key can be stored in any order, so unordered. The time complexity of map operations is O(logN) while for unordered_map, It is O(1) on average. Let us see the differences in a tabular (표로 산출된) form. # About unordered_map unordered_map is an associated container that stores elements formed by the combination of key-value..
2022.08.22 -
832. Flipping an Image
Given an n x n binary matrix image, flip the image horizontally, then invert it, and return the resulting image. To flip an image horizontally means that each row of the image is reversed. For example, flipping [1,1,0] horizontally results in [0,1,1]. To invert an image means that each 0 is replaced by 1, and each 1 is replaced by 0. For example, inverting [0,1,1] results in [1,0,0]. Example 1: ..
2022.08.21 -
977. Squares of a Sorted Array
Given an integer array nums sorted in non-decreasing order, return an array of the squares of each number sorted in non-decreasing order. Example 1: Input: nums = [-4,-1,0,3,10] Output: [0,1,9,16,100] Explanation: After squaring, the array becomes [16,1,0,9,100]. After sorting, it becomes [0,1,9,16,100]. Example 2: Input: nums = [-7,-3,2,3,11] Output: [4,9,9,49,121] Constraints: 1
2022.08.21 -
278. First Bad Version
You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based on the previous version, all the versions after a bad version are also bad. Suppose you have n versions [1, 2, ..., n] and you want to find out the first bad one, which causes all the following ones to be..
2022.08.21 -
C++ min , max, index 구하기
HEADER : #include 일일히 for 문을 쓰지않아도, algorithm 라이브러리에 있는 min/max_elements를 사용하여 한 줄로도 간단하게 최대값을 구할 수 있다! 또한 해당 최소/최대 값의 index 값을 구할 수 있다. 이는 결과값에서 - v.begin()을 빼주면 된다. min/max_element의 결과로, 최대값을 가리키는 반복자를 반환하기 때문에 * 연산자를 사용한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include #include #include using namespace std; vector nums; int main() { nums = {123,213,444,455,666,7..
2022.08.21