일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- level3
- Programmers
- pwnable
- 개발
- level2
- github
- 여행경로
- 동적계획법
- 전화번호 목록
- Python3
- 머신러닝
- 2020 KAKAO BLIND RECRUITMENT
- 자물쇠와 열쇠
- DFS/BFS
- 더 맵게
- level 2
- 베스트앨범
- vscode
- 문자열압축
- 타겟 넘버
- 같은숫자는싫어
- level 3
- 동빈나
- 스택/큐
- themida
- 코딩테스트
- 프로그래머스
- level1
- 선형회귀
- Today
- Total
목록분류 전체보기 (30)
hoon

최소 힙을 사용하는 문제 import heapq def solution(scoville, K): answer = 0 heapq.heapify(scoville) while True: min1 = heapq.heappop(scoville) if min1 >= K: break if len(scoville) == 0: answer = -1 break min2 = heapq.heappop(scoville) new_scoville = min1 + min2 * 2 heapq.heappush(scoville, new_scoville) answer += 1 return answer
def solution(numlist, n): # lambda 사용 시 tuple을 사용하여 값을 줄 수 있는데 처음을 기준후 정렬 후 그다음 걸기준으로 또 정렬한다. numlist.sort(key=lambda x:(abs(x-n),-x)) return numlist
.get(key, value) : dict 사용 시 없으면 초기값 설정(많이 까먹고 조건문을 사용했음 비슷한데 코드가 줌) .swapcase() : 대문자 소문자 상호변환 함수 string = '123456789' #string[::-1] -> 987654321 #string[1::4] -> 258 #[시작지점::순서]

vscode에서 ctrl+shift+p 후 File:OpenActive File in New Window입력 하면 현재 탭에 열고 있는 파일이 분할 창으로 생김 File:OpenActive File in New Window을 단축키로 지정하면 됨 본인은 ctrl+shift+=로 설정함

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42898 최단 거리 문제이다. 처음에 공식으로 날먹할려다 '최단거리 - 방해물을 거쳐가는 길'은 방해물들을 거쳐가는 길에 중복이 생긴다는 것을 늦게 깨닫고 문제의 의도대로 동적 계획법을 사용해야됨을 절실히 깨달았다. 풀이 1 def solution(m, n, puddles): path = [[0]*m for i in range(n)] x = 0 y = 0 while [x+1, 1] not in puddles and x in range(m): path[0][x] = 1 x += 1 while [1, y+1] not in puddles and y in range(n): path[y][0] = 1..
문제 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "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의 모든 동작과 구성을 다 알아야 되기 때문에 그건 불가능하여 최대한 간단하게! 윈도우가 세팅해주는 메모리와 비슷하게 설정을 해..
BoB 플젝을 하면서 처음 본 잔혹한 프로그램이다. Themida는 Protector의 일종으로 코드를 숨기기 위해서 주요 기능 packing, wrapping, virtualization을 지원한다. Themida로 protected된 프로그램은 알아먹기 힘들게 변하기 때문에 이를 이용한 게임핵, 악성코드를 분석하려면 하염없이 리버싱을 진행해야된다. 그것도 잘 설정된 분석환경에서!! (안티 디버깅 등등 뚫을 게 많다.) https://github.com/x64dbg/ScyllaHide를 이용해서 protected된 프로그램을 분석하였다.

윈도우에서 gcc를 사용할 수 있도록 하는 소프트웨어, 자세한 내용은 구글에 검색해보자 https://www.msys2.org/ --> 여기에서 다운 및 자세한 설명이 있다. msys2를 windows terminal에서 열 수 있게 설정하는 방법은 https://www.msys2.org/docs/terminals/ 여기에서 잘 설명되어 있다. 사이트 내 다음과 같은 구문을 넣어 설정하라고 설명이 되어 있는데 // This makes MINGW64 the default shell "defaultProfile": "{17da3cac-b318-431e-8a3e-7fcdefe6d114}", "profiles": { "list": [ // ... { "guid": "{17da3cac-b318-431e-8a3e-..