본문 바로가기

전체 글122

Python 주요 자료형 시간 복잡도 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 코딩 테스트 효율성 통과하기 너무 어렵다 List Operation Example Complexity Class Notes Index l[i] O(1) Store l[i] = 0 O(1) Length len(l) O(1) Append l.append(5) O(1) Pop l.pop() O(1) same as l.pop(-1) Clear l.clear() O(1) similar to l = [] Slice l[a:b] O(b-a) l[:] : O(len(l)-0) = O(N) Extend l.extend(…) O(len(…)) depends only on len of extension Construction list(…) O(len(…)) depends on .. 2022. 1. 24.
Docker 기본 틀린 부분이 있다면 언제든지 댓글 남겨주세요! Docker란? 컨테이너 가상화 기술을 사용하여 애플리케이션 실행 환경을 구축 및 운영하기 위한 플랫폼 컨테이너 단위로 서버를 구동시킴, 이 컨테이너의 기반이 docker image * docker image=애플리케이션 실행에 필요한 파일이 담긴 디렉터리 * 가상화 기술이란? 개발 환경 구축을 편리하게 하기 위해 가상 OS위에 애플리케이션을 구동시키는 것. 즉 가상 환경 - 호스트 가상화: 호스트 OS위에 가상화 소프트웨어를 설치하고 게스트OS를 구동 ex) Virtual Box, VMware - 하이퍼바이저 가상화: 하드웨어에 가상화 전문 소프트웨어 하이퍼바이저 설치 후 하드웨어와 가상환경 제어 ex) Hyper-V, XenServer - 컨테이너 가상화.. 2022. 1. 21.
[Algorithm]DFS/BFS 개념 틀린 부분이 있다면 언제든지 댓글 남겨주세요! DFS(Depth-First Search) : 깊이를 우선적으로 탐색, 스택 및 재귀함수 사용 최상단 노드를 시작으로 인접한 노드 중 방문하지 않은 노드를 깊이 우선으로 선택 방문하지 않은 인접 노드가 없으면 스택의 최상단 노드를 꺼냄 방문했던 노드를 체크하여 더 이상 방문할 수 있는 노드가 없는 경우 종료 # chapter 5 DFS def dfs(graphs, n, visit): visit[n]=True # 방문 #print(n) for i in graphs[n]: if visit[i]==0: visit[i]=1 dfs(graphs, i, visit) visit=[0]*9 # graph의 개수에 맞춰 노드 방문 여부 확인을 위한 리스트 생성 graphs=.. 2022. 1. 18.
[Algorithm] 선형구조-리스트/스택/큐/데크 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 아래에서 설명할 자료구조는 파이썬에서 리스트를 이용하면 대부분 구현 가능하다. 순차 리스트 (> static) : 배열과 유사하게 동일한 유형의 자료를 연속적으로 나열하기 위해 사용되는 추상 데이터 구조(ADT) * ADT(추상화 자료 구조): 프로그램의 대상이 되는 무엇인가를 추상화하여 표현하는 것으로 유지보수가 용이 - 특정 위치에서의 삽입/삭제 = O(n) - i번째 노드 탐색 수행 시간 = O(1) > 각 배열의 위치를 알고 있기 때문에 연결리스트 (> dynamic) : 자료의 연결을 위해 포인터 사용, 각 노드는 다음 노드를 가리키는 포인터를 가짐 - 특정 위치에서의 삽입/삭제 = O(1) - i번째 노드 탐색 수행 시간 = O(n) 배열을 이용해.. 2022. 1. 16.
Toeic Speaking 3일 벼락치기 후기 이제 찐 취준생이 되었다. 그래서 미루고 미루던 공인 영어 점수를 다급하게 공부하기 시작했다. 공부 과정 다른 사람들은 대부분 듣기를 잘하고 읽기를 어려워하는데, 나는 듣기를 못한다..고등학생때부터 그랬다... 토익 시험 경험은 새내기때 학교에서 모의토익 본 것 밖에 없고, 몇점인지 기억도 안난다..영어 너무 싫어.. 재학중에는 논문이나 기술 문서를 읽을 때만 주로 영어를 접했고 간간히 방학마다 인강도 듣고 단어 공부도 하긴 했다. 그 외에는 학교 교양때 영어수업 들은 것 빼고 따로 공부한 건 없다! 토익스피킹 유형조차 몰랐기에 동생이 해커스 토익 환급반을 신청해두어서 해커스 토스 세이임 선생님 강의를 들었다. 수요일에 그 주 일요일 시험을 급하게 신청했기 때문에 신청한 그 날부터 모의고사 위주로 문제를.. 2022. 1. 15.
[CodingStudy] Beakjoon 6588번 골드 바흐의 추측 틀린 부분이 있다면 언제든지 댓글 남겨주세요! Beakjoon 6588번_골드 바흐의 추측 https://www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 효율성을 따지는 부분이 어려운 문제이다. 우선 핵심은 소수 판별시 에라토스테네스의 체 이용! 에라토스테네스의 체는 여러개의 소수 판별에 용이하다. 알고리즘에 대해 간단히 설명해보면 다음과 같다. 1. 모든 수에서 가장 작은 소수 2 > 나머지 수 중 2의 배수 모두 지움 2. 다음 작.. 2022. 1. 2.
[Malwarebytes] crackme 1 틀린 부분이 있다면 언제든지 댓글 남겨주세요! Malwarebytes-crackme 1 이 파일은 Malwarebytes사에서 제공하는 훈련용 악성코드이다. 9가지의 디버거 탐지 코드를 거쳐 process hollowing을 통해 rundll32.exe프로세스에 인젝션 코드를 주입한 후 실행시키면 성공 문자열을 확인할 수 있다. 정적 분석 (Exeinfo, Bintext) 우선 정적 분석을 통해 파일의 형식과 사용되는 API, 문자열 등을 확인해보았다. 상세 분석(x64dbg, process explorer) x64dbg으로 동적 분석을 통해 상세 분석을 진행한다. 파일을 실행시켰을 때 나왔던 문자열을 이용해 핵심 코드를 찾아간다. 'I am so sorry, you failed! :( ' 문자열을 이용.. 2021. 12. 9.
취뽀 보호되어 있는 글 입니다. 2021. 11. 29.
[CodingStudy] Heap -더 맵게 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 프로그래머스_Heap -더 맵게 문제 자체는 어렵지 않았는데 효율성에서 막혔던 문제이다. sort를 매번 반복때마다 사용하게 되면 시간복잡도가 O( N * N logN ) 가 된다. 효율성을 통과하기 위해서는 heapq 모듈을 쓰는 방법이 있었다. (다른 방법이 있다면 알려주세용..) heapq 알고리즘 heap= 최소/최대 규칙을 따르는 이진 트리 최소 힙=부모 노드 값이 자식 노드보다 항상 작거나 같음 최대 힙=부모 노드 값이 자식 노드보다 항상 크거나 같음 파이썬에서 힙큐알고리즘(우선순위 큐 알고리즘) 내장 모듈을 제공한다. 즉 따로 정렬을 하지 않아도 가장 낮은 값이 가장 낮은 인덱스에 위치한다. heapq.heapify(list) list를 힙으로 .. 2021. 11. 22.
데이터 보호 기법-Canary 틀린 부분이 있다면 언제든지 댓글 남겨주세요! Canary 란? 함수 호출 시에 스택에 카나리아 값을 설정하고, 함수가 종료하기 직전 값의 변조 유무를 검사 (이를 이용하여 스택 오버플로우가 발생 했는지 여부를 확인할 수 있음) 이 값은 컴파일 단계에서 추가되며, 옵션으로 SSP(stack smashing protector)사용/ SSP끄기 설정 Windows에서는 GS or Stack Cookie / Linux에서는 Stack Canary라고 불림 Canary 종류 - Terminator canary : \xff(EOF), \x00(null), 0x0a(LF) 와 같이 문자열의 끝을 나타내는 문자 이용 - Random canary : 랜덤하게 값 생성, 프로그램 초기 설정시 전역 변수에 값 저장 - R.. 2021. 11. 11.
[CodingStudy] BFS-게임맵 최단거리 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 프로그래머스-BFS_게임맵 최단거리 https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 생각해야 할 부분 1. BFS(Breadth First Search) 알고리즘 개념 이용 > 한번 방문한 위치 재방문하지 않도록 이미 지나온 길은 0으로 visit 체크 2. collection 모듈에서 제공하는 deque는 s.. 2021. 11. 9.
UAF 공격 틀린 부분이 있다면 언제든지 댓글 남겨주세요! UAF (Use After Free) 취약점 힙(Heap)은 동적으로 메모리 할당(malloc)/해제(free)가 되는 부분. 힙 영역 중 사용 중이 아닌 공간(unused heap)은 이중 연결 리스트로 관리. 중간에 메모리 해제가 발생하면 해당 영역이 연결 리스트에 추가되며, 새로 메모리 할당 요청이 오면 연결리스트의 첫번째 매칭(first fit)영역을 할당. 할당했던 메모리 해제 후 재할당해서 사용할 때 같은 크기로 재할당 할 경우 이전에 사용(use)했던 메모리 공간을 재사용하게 되는데, 이때 이전에 할당했을 때처럼 사용하는 경우 발생할 수 있는 문제가 UAF(use after free)공격. (최근 운영체제에서는 재할당 X) 해제된 공간 재할당 확.. 2021. 11. 6.
728x90
반응형