일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 | 31 |
- pwnable
- themida
- 문자열압축
- 여행경로
- 타겟 넘버
- 자물쇠와 열쇠
- level2
- vscode
- 동적계획법
- 동빈나
- 선형회귀
- level3
- level 2
- 스택/큐
- level 3
- 머신러닝
- 전화번호 목록
- 프로그래머스
- 더 맵게
- 베스트앨범
- 코딩테스트
- 2020 KAKAO BLIND RECRUITMENT
- Programmers
- DFS/BFS
- 같은숫자는싫어
- Python3
- 개발
- github
- level1
- Today
- Total
hoon
문제 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "aabbaccc"의 경우 "2a2ba3c"(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 경우 압축률이 낮다는 단점이 있습니다. 예를 들면, "abcabcdede"와 같은 문자열은 전혀 압축되지 않습니다. "어피치"는 이러한 단점을 해결하기 위해 문자열을 1개 이상의 단위로 잘라서 ..
혼자서 열심히 풀려고 했지만 1시간 안에 푸는 게 불가능해 답을 보면서 공부하기로 했다. ㅠ 풀이 힌트 1. key 회전 2. 자물쇠 확장 import copy def expend_lock(lock, N, M, size): # 자물쇠를 확장시키는 함수 # 순수 함수 expended_lock = [[0 for i in range(size)] for _ in range(size)] for y in range(N): for x in range(N): expended_lock[y + M - 1][x + M - 1] = lock[y][x] return expended_lock def rotate(key): # *key는 껍질(Unpacking)을 벗겨내는 역할을 합니다. [] () {} # [(0, 0, 0), ..
themida로 보호되어 가상화 난독화가 된 프로그램을 분석하려면 해당 프로그램을 실행하여 동적으로 분석을 진행해야된다. 하지만 그 프로그램이 악성 프로그램이라면? 물론 가상머신에서 동적으로 분석하면된다~ 하실 수도 있지만 가상환경에서 동작이 안되도록 설정이 된 경우도 있고고 가상환경이라고 중요한 정보가 없다는 것도 있고 가장 큰 이유는 귀찮다. 조금이라도 편하게 분석하자는 건 데 클릭질 몇 번이라도 줄여야 되지 않겠는가? 멘토님의 조언하에 unicorn이라는 에뮬레이터를 이용하여 프로그램 동작을 시킬 수 있는 대 실제 윈도우 운영체제의 PE LOADER를 구현하려면 window의 모든 동작과 구성을 다 알아야 되기 때문에 그건 불가능하여 최대한 간단하게! 윈도우가 세팅해주는 메모리와 비슷하게 설정을 해..