나만의 백신 만들기가 시즌2로 돌아왔다~~ 는 과제.. 사실 과제는 진작에 끝냈고 이걸 쓴건 5월 20일 정도였는데, 아직 블로그 글 작성에 익숙치 않다보니 어쩌다가 다 날라가버려서... 똑같은 내용을 다시 쓰자니 귀찮아서 미루고 있었는데, 저번 글에 다음 편을 올려달라는 댓글을 써주신 분이 계셔서 다시 쓸 마음이 생겼다. 이제 저번에 만들어 본 백신보다 조금 더 백신다운 백신을 만들어보자. 이전 글에선 1. 전용백신 개발하기2. 통합백신 만들기 를 해봤다. 이번엔 지난 번에 만들었던 백신을 기능 단위로 쪼개는 것에서부터 시작해보자. 3. 백신 분해하기 (1) 악성코드 패턴 분리지금 우리가 만든 백신은 악성코드 패턴과 진단 모듈, 치료 모듈이 모두 함께 있기 때문에 새로운 악성코드가 등장하여 악성코드 패..
스택 뽀개기 프로젝트 - 1 이제부터 BOJ 단계 별 문제의 스택 카테고리에 있는 모든 문제를 풀어볼까 한다.STL을 쓰면 간단하지만 첫 번째 문제인 10828번이 스택을 직접 만드는 문제이기 때문에 직접 만들어서 앞으로의 문제들에선 내 스택 라이브러리를 쓰기로 하겠다.예전에 자료구조 공부할 때 만들어 둔 C언어 라이브러리가 있긴 한데, 그때의 나에대한 불신과 C++로, 템플릿을 이용하여 다시 짜보고 싶다는 점 때문에 다시 짜보겠다. 문제https://www.acmicpc.net/problem/10828스택의 기본 ADT를 작성하고 입출력을 수행하는 문제 난이도 난이도 中, 소요시간 40분 풀이 과정 10828번에서 만들라는 스택은 int형 데이터를 받는 스택인데, 템플릿을 이용하여 int형이 아니라 다..
이번 학기에 보안 수업을 들으며 여러 실습들을 해보고 있지만 내가 가장 재미있게 할 수 있는 실습은 역시 어릴 때부터 관심을 갖고 있었던 '백신 만들기'이다.관심은 있었으나 너무 어렵다고 생각한 탓에 도전도 안해보고 있었는데, 생각보다 매우 쉬워서 놀랐다. 물론 고차원적인 백신으로 발전한다면 어렵겠지만... 이 글은 비제이퍼블릭 출판사의 책의 4장에 대한 실습을 진행하고 개인적인 정리를 목적으로 요약한 것임을 밝힌다. 코드는 부분적으로 수정하였다. 따라서 파이썬으로 실습하였고, 파이썬 2.7 버전을 사용하였다. 에디터로는 Pycharm community edition을 사용하였다. 하지만 딱히 파이썬을 몰라도 지장없을 정도로 코드가 단순하다. 이번 실습을 끝내면 결과적으로 완성될 백신의 코드는 아래와 같..
저는 Windows10에서 C++ SDK를 사용하였는데, 다른 SDK를 사용해도 똑같이 동작할 것으로 생각하지만 Windows10이 아닌 다른 환경에서는 동작을 보장할 수 없습니다. 이번 졸업 프로젝트에 립 모션을 사용하는데 손은 아무 설정을 안해줘도 자동으로 인식하지만 펜이나 막대기같은 장비를 인식하려면 (Tool tracking이라고 부름) 뭔가를 해줘야 하는데, 동영상이 돌아다니는 걸 봐서는 방법은 확실히 존재하는데 관련 샘플 코드도 없고 설명서도 제대로 안나와있고... 아무튼 노답이었다.어쩔 수 없이 내가 쓴다...무조건 해야되는 거기 때문에 틈틈이 찾아보고 Leap motion forum에도 질문을 올린 결과두구두구... 하루쯤 기다렸더니 답이 달렸다. 다행이다. 보통 이런 상황에서 내가 만나곤..
문제https://www.acmicpc.net/problem/90202보다 큰 짝수의 소수 곱(골드바흐 파티션)을 찾는 문제 난이도 난이도 中, 소요시간 20분 풀이 과정저번에 소수 문제를 풀어봤으니 이어서 소수 카테고리를 마저 풀기로 했다.지난 번에 2581번에서 썼던 소수 구하는 알고리즘을 다음과 같이 조금 개선했다. #include #include bool isPrime(int n) { if (n == 2) return true; if (n == 1 || n % 2 == 0) return false; for (int j = 3; j * j > test; for (int t = 0; t > n; vector results; results = go..
문제https://www.acmicpc.net/problem/2581M이상 N이하의 소수들의 합과 그 중 최솟값을 찾는 문제. https://www.acmicpc.net/problem/1929M이상 N이하의 소수를 찾는 문제. 난이도 2581 - 난이도 下, 소요시간 10분 1929 - 난이도 上, 소요시간 4시간 이상..? 풀이 과정 사실 1929번은 예전에 풀다가 실행시간이 자꾸 초과되서 짜증나서 남겨놓았던 문제이다. 그래서 소요시간을 4시간 이상이라고 적어놨다. 두 문제는 사실상 동일한 문제지만 1929번에선 실행시간을 엄격하게 본다. 먼저 간단한 2581번부터 보자.아이디어는 간단하다.어떤 수가 소수인지를 판단하여 true/false를 return해주는 isPrime이라는 함수를 n에서 시작해서 ..
알고리즘 문제를 풀어야 실력이 느는데....알고 있는데......또 작심삼일이 되었다. 오늘부터 다시 시작한다.하루에 한 문제씩 푸는건 무리인 것 같다. 학교 생활이 너무 바쁘다보니 하루의 모든 시간을 온전히 알고리즘 문제 풀이에 쓸 순 없고 어려운 문제를 만나면 너무 오래걸리기 때문에 이틀에 하나씩 풀기로 결정했다. 뭔가 자기합리화인 감이 없지않아 있지만 이렇게 하지 않으면 진행이 안될 것 같다.사실 모든 건 내탓... 대신 쉬운 문제를 풀면 바로 다음 날 한 문제 더 풀지 뭐그간 미해결 문제로 남아있던(풀다 말거나 어려워서 놔뒀거나) 문제들은 과감히 다 삭제해버렸다. 어차피 다시 풀어도 기억도 안나고 코드를 새로 짜야되기 때문에. 새로 시작하는 것은 쉽지만 이걸 또 얼마나 이어갈 수 있을지가 관건이다.
문제https://www.acmicpc.net/problem/1316 단어들을 받아 몇개의 단어가 그룹단어인지 출력하는 문제. 난이도 난이도 下, 소요시간 10분 풀이 과정 그룹 단어?? 생소한 개념이다. 원래 있는 개념인지 이 문제를 위해 만든건지 딱 보고 바로 아이디어가 떠오르진 않았다. 단어의 앞에서 나온 알파벳들을 기억해뒀다가 뒤에 있는 알파벳들과 비교해야 한다는 생각에 큐를 써야하나 생각하고 있다가, 그냥 코딩을 해봤는데 코딩하는 중에 깨달았다. 기억해 둘 필요가 없다는 것을... 그냥 알파벳이 연속적으로 나오지 않았을 경우 그 뒤에 다시 나오는가만 보면 되는 거였다. 즉, 단어 내의 i번째 알파벳과 i+1번째 알파벳이 다르다면, i+2번째부터 단어의 끝까지 해당 알파벳이 존재하는지만 찾으면 된..
문제https://www.acmicpc.net/problem/2292 육각형 벌집의 각 방에 들어가기 위해 몇 개의 방을 거쳐야 하는지 구하는 문제. 난이도 난이도 下, 소요시간 10분 풀이 과정 정답률 47%짜리 문제에 실패라 떠있길래 뭐지..? 하고 눌러봤는데 예전에 내가 풀었던 문제였다.채점 기록을 보니까 6개월 전에 3번 제출했는데 3번 다 틀렸다ㅋㅋㅋㅋ문제를 보니까 기억이 났다. 그때의 나는 이걸 틀린 수준이었던가... 벌집의 규칙은 이렇다. 가운데 1개가장자리 6개그 가장자리 12개그그 가장자리 18개... 6의 배수로 증가함을 알 수 있다.따라서 1은 1개의 방, 2~7은 2개의 방, 8~19는 3개의 방, ...이고 이는 몇 번째 가장자리에 속하는가?를 구하는 문제와 같다. 따라서 N이 주..
블로그를 시작할 때 하루에 하나씩 알고리즘 문제를 풀어서 올리자고 다짐했다. 근데 두개 올린 뒤 계속 미루게 되었다...... 알고리즘 문제는 그 뒤로도 많이 풀었는데 하루에 하나는 못했지만 풀어놓은 걸 또 올리자니 이 시간에 공부하자는 생각이 든다. 문제를 푸는 동시에 글을 작성하는 게 가장 좋은 방법이지만, 대부분 이동시간에 지하철이나 버스에서 풀기 때문에 그러기도 힘들다. 문제를 푸는 시간보다 블로그에 글 쓰는 시간이 많이 걸린다. 엄청 긴 글을 쓰는 게 아닌데도... 익숙치 않아서 그런가부다... 그리고 하루에 하나씩 풀자고 생각한 문제가 너무너무너무 쉬운 문제일 경우 올리기에도 좀 그렇고... 암튼 문제의 근원은 내가 바쁘다는데 있다ㅜ.ㅜ 과제 넘 많음ㅜㅜㅜㅜㅜㅜ
- Total
- Today
- Yesterday
- Tool Tracking
- Leap motion
- VirtualBox
- 윈도우xp
- Leap motion pencil
- # 보안 # 나만의 # 백신 # 만들기 #안티 #바이러스 #파이썬 #악성코드
- VMware
- 툴
- Leap motion SDK
- 가상머신
- Leap motion pen
- 립 모션
- 설치
- windows10
- Leap motion stick
- WindowsXP
- C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |