JUHYUN167
저는 이런 사람입니다
-
자기소개
자기소개
자기소개입니다. -
BoB 9기 합격후기
BoB 9기 합격후기
수료 후기는 페이스북에 있습니다.
이런 글을 씁니다
-
이진 탐색 트리
이진 탐색 트리
2021.07.17개요 얼마 전 백준에서 집합 자료형을 구현하는 문제를 보았습니다. 직접 구현하라고 하면 가물가물하면서 `std::set` 같은 컨테이너를 쓰는 것이 양심에 찔려서, 자료구조 공부도 다시 시작했습니다. 오늘은 가장 먼저 이진 탐색 트리(Binary Search Tree)를 살펴봅니다. 이진 탐색 트리란 정의와 성질 이진 탐색 트리는 이진 트리면서, 다음과 같은 재귀적인 성질을 가진 트리입니다. 이진 탐색 트리의 성질 노드를 기준으로 왼쪽 트리에 있는 노드들은 더 작은 키(key)를 가진다. 오른쪽 트리에 있는 노드들은 더 큰 키를 가진다. 성질에서 알 수 있듯, 이진 탐색 트리는 키-값(key-value)의 데이터를 저장하는 자료구조입니다. 이 글에서는 편의상 키와 값은 모두 정수이며, 두 값이 같다고 가.. -
[백준 12015] 이진 탐색으로 LIS 최적화하기
[백준 12015] 이진 탐색으로 LIS 최적화하기
2021.07.16문제 개요 백준 12015번 문제입니다. LIS(Longest Increasing Sequence)의 길이를 $O(n\log n)$ 시간에 구해야 하는 문제로, 동적 계획법을 사용한 $O(n^2)$ 풀이와는 다른 방법이 필요합니다. 이진 탐색을 사용하여, LIS가 될 수 있는 후보군을 계속 갱신하는 방식의 풀이를 소개합니다. 문제 분석 새로운 원소 조회 동적 계획법 풀이와 같이 앞에서부터 원소를 하나씩 조회합니다. 지금까지 조회한 원소가 2와 5라고 합시다. LIS는 `2, 5` 일 것입니다. 이제 다음 원소가 3이라고 합시다. 가능한 LIS는 `2, 3` 과 `2, 5` 의 두 가지입니다. 그런데 마지막 원소가 작은 편이 뒤에 나올 원소들을 LIS에 넣기에 더욱 유리하므로, `2, 3` 을 선택하기로 .. -
Docker를 사용한 워게임/CTF 환경 구성
Docker를 사용한 워게임/CTF 환경 구성
2021.03.06Docker란? Docker는 LXC라는 Linux 커널의 컨테이너 기능을 쉽게 사용할 수 있도록 만들어진 기술로, Docker를 사용하면 마치 가상머신처럼 독립된 프로세스 공간, 네트워크 등을 가진 시스템에서 애플리케이션을 실행할 수 있습니다. 가상머신보다는 상대적으로 가볍고, 배포와 관리가 간편하다는 장점이 있습니다. 오늘은 CTF/워게임 실습 환경을 Docker로 구성하는 방법을 소개합니다. 직접 작성한 Dockerfile을 기반으로 하며, 사용 중인 운영체제에 Docker와 Docker Compose가 설치되어 있어야 합니다. Docker/Docker Compose 설치 Docker 설치 방법은 운영체제에 따라 다릅니다. Windows/macOS는 Docker Desktop 프로그램을 공식 홈페이.. -
IDA Pro Lumina 프리서버 사용해보기
IDA Pro Lumina 프리서버 사용해보기
2021.02.27Lumina 서버 IDA Pro 디컴파일러의 Lumina 서버 기능은 단순하지만 매우 강력한 기능입니다. Hex Rays 사에서 관리하는 Lumina 서버에는 여러 알려진 함수들의 시그니처(함수 이름, 반환 타입, 인자 정보 등)가 저장되어 있고, 사용자는 자신이 알고 있는 시그니처를 공유하거나 모르는 함수에 대한 정보를 공유받을 수 있습니다. 즉, strip된 바이너리의 분석이 상당히 용이해지는 것입니다. Hex Rays 사에서는 Lumina 서버와 관련된 기술을 공개한 적이 없고, 개인이 서버를 운영할 수 있는 기능 등을 제공하지 않습니다. 하지만 서버와의 통신 프로토콜을 분석하여 구축된 프리서버가 있는데, 바로 Lumen입니다. 오늘은 IDA Pro에서 이 Lumen 서버를 사용하는 방법과 짧은 사..