전체 글
-
KMS13 : C++(Hurffman code)을 이용한 txt 파일 압축기 (source)Program_Light 2021. 9. 4. 13:00
이번에는 지난달에 올린 Huffman code를 이용한 영문 텍스트 파일을 모든 txt파일에서 사용할 수 있게 업그레이드 하는 동시에, 간단한 최적화를 진행해봤습니다. (물론 아직도 완벽한 최적화라 하기는 어렵지만요...) technonogy 지난 소스에서 사용한 최고의 기술은 huffman code의 string length만을 가지로 huffman code를 만들어내는 Binary tree를 기반으로 구현한, Huffman code length 만으로 코드를 복구하는 프로세스인데, 이 방식에 약간의 메모리 최적화를 진행했습니다. 지난 소스에서도 설명했듯 허프만 코드는 기본적으로 이진 트리 위에서 구현됩니다. 허프만 코드를 저장하는 이진 트리의 특징을 살려 코드의 길이만으로 코드를 최적화해내는 프로세스..
-
KMS13 : C++(Hurffman code)을 이용한영문 txt 파일 압축기 (source)Program_Light 2021. 8. 7. 13:00
이번 포스팅에 쓰인 프로그램은 사실 KMS프로그램에 속하지 않는 놈이었습니다. 국어 모의고사 지문에서 허프만 코드에 관한 설명이 나왔는데, 상당히 흥미롭더군요 (꼭 자기 분야가 아니면 흥미로움;;) 그래서 지문에 있던 내용을 기반으로 하여, 비효율적인 모든 부분들은 다 잘라내고 몇 가지 테크닉을 터 추가해서 코드를 짰습니다. 생각없이 이틀동안 두다다다 만들었는데, 예상 외로 결과가 뛰어나서 이렇게 KMS 13이라는 새로운 이름을 붙여 블로그에 내보내게 되었습니다. 개인적으로 C, algorithm, 암호화 이런것만 하고 C++은 vector나 priority_queue STL잠깐식 얹어 쓰는 상황이었는데, 이 프로그램을 개발하면서 대강 알고 있던 클래스를 사용했습니다. 물론 상속같은 것은 1도 없는 클래..
-
KMS12 : Python PyQt5를 이용한 줌 반자동 참가기 (source)Program_Light 2021. 7. 3. 13:00
지난번 만든 줌 반자동 참가기를 업그레이드 시켜 최종적으로 완성시켰습니다. 이전에 만든 줌 반자동 참가기 줌 반자동 참가기를 배포하고, 실제로 사용해보면서, 불편한 점들을 몇 가지 느꼈습니다. 우선, 그 날의 전체 시간표를 알 수 없다는 것입니다. UI는 간편할수록 좋다는 원칙에 따라서, 기존 줌 반자동 참가기는 그 시간대의 추천 과목만을 보여주었습니다. 즉, 그 날의 시간표는 알지 못했습니다. 실사용을 해보니, 이 부분은 상당히 불편한 부분이여서, 새 버전에는 그 날의 시간표또한 띄어지도록 만들었습니다. 두 번째로는, UI가 단색조라는 것입니다. 그래도 사용자가 사용하는 프로그램인 이상, UI에 신경을 쓰지 않을 수는 없었습니다. 과거 흑백의 UI를 가진 프로그램은 상당히 날것의 프로그램 느낌을 주어서..
-
KMS12 : Python PyQt5를 이용한 줌 반자동 참가기 (source)Program_Light 2021. 6. 5. 13:00
이번에 온라인 수업을 하게 되면서, 줌 방에 접속하기 위한 과정이 매우 불편하다는 것을 알아내었습니다. 매번 시간표 확인 -> ID, PW확인, -> 줌 실행 -> 접속은 너무 번거로운 과정이 아닙니까? 그래서 이번에는 실제로 실생활에 사용하기 위한 프로그램을 하나 만들어보았습니다. 원래 제 특기는 C이지만, 어렴풋이 친구에게 C언어로는 GUI하기가 빡세다는 말을 들어서, 파이썬을 새로 배웠습니다. 정식으로 파이썬을 배운적은 없지만 이전에도 파이썬을 이용해서 프로그램을 한 2번? 만들어 보았기 떄문에 그렇게 어렵지는 않았습니다. source,py (줌 초대 URL은 모두 정보 보호를 위해 바꾸었습니다) import datetime import sys import time import webbrowser ..
-
~2021까지 나갔던 모든 대회 정리Experience/Contest 2021. 5. 29. 13:00
Language주 언어 : C / C++sub1 : Pythonsub2 : JavaC++ / Rust / Android studio(Kotlin) / JavaScript를 다룰 수 있음portfolio2018주니어 소프트웨어 창작대회 중등부 장려상 (열려라 참깨 팀)링크1(수상작 페이지) 삼성 주니어 소프트웨어 창작대회삼성 주니어 SW 창작대회는 미래의 소프트웨어 인재를 발굴하고 지원하는 대회입니다.www.juniorsoftwarecup.com:443정보올림피아드 2차 대회 장려상2019주니어 소프트웨어 창작대회 중등부 최우수상 (부엉이 팀)링크1(수상작 페이지) 삼성 주니어 소프트웨어 창작대회삼성 주니어 SW 창작대회는 미래의 소프트웨어 인재를 발굴하고 지원하는 대회입니다.www.juniorsoftwa..
-
C언어 NIST a statistical Test Suite for Random and Pseudo random Number Generators for Ctyptographic Applications에 관련된 자료Life/Research 2021. 5. 22. 13:00
오늘은 난수에 대한 자료들을 다루어보겠습니다NIST에서 권장하는 난수 생성의 기준이라고 할까요? 그정도 느낌의 자료입니다.영어로 된 자료는 많지만, 한국어로 된 자료는 없어서 내가 볼겸, 정보공유를 할 겸 해서 포스트를 하게 되었습니다일단 pdf를 먼저 올려드리도록 하겠습니다이 pdf는 어떻게 수가 난수인지를 판별하는가에 대한 13가지의 기준을 설명하고 있습니다. 모든 기준을 만족해야 random number라 할 수 있구요, 각종 통계학에서 사용되는 것으로 보이는 함수들을 수식에 다량 사용하고 있습니다. 개인적으로는 뒤로 갈수록 수식이 더 복잡해지는 것 같았습니다. NIST에서는 이 random 판별 방식의 소스또한 공개하고 있습니다.(아래 사이트를 클릭하시면 자료를 가져온 사이트로 가실 수 있습니다)..
-
포스트 일정 변경 공지카테고리 없음 2021. 5. 22. 13:00
작년까지 열심히 해오던 네이버 블로그를 버리고 티스토리 블로그로 와 지금까지는 네이버 블로그의 signature 프로젝트들을 포스팅 하면 되었기 때문에 소재 걱정이 없었습니다 5월 초까지만 해도 네이버 블로그에서 해오던 (2월쯤에 끝난) ECC프로젝트 결과를 포스팅하는 걸로 버텼지만, 이제는 주제를 생각해야 될 시기가 되었습니다 문제는 소재가 너무 느리게 나온다는 겁니다 관련 주제를 생각하는 데도 엄청난 시간이 걸리고 과거에는 signature 프로젝트라 해봤자 간단한 수준이기에 1달은 가지는 못했지만 최근 signature 프로젝트인 RSA, ECC모두 2개 모두 개발 및 연구 기간이 6개월을 넘겼습니다 코드는 모두 800줄, 1800줄 정도 되고요 그래서 제가 생각한 바로는 앞으로는 포스팅은 1달에 ..
-
C언어 math.h에서 파이값 가져오는 방법Life/Research 2021. 5. 15. 13:00
C언어 파이값을 비롯해, 자연상수, 자연상수 로그값, 자연소그부터 루트 파이와 2 분의 파이 등 다양한 상수값?들을 알아내는 방법을 알아봅시다.개인적으로 알면 별거 아닌데, 꼭 필요할때 기억이 안 나서 검색을 해봐야 했으므로 그냥 여기다 씁니다. 코드#include #define _USE_MATH_DEFINES#include // Now we can use MATH_PIint main(void) { return 0;} 사용가능한 매크로들 (발췌 : mathcorecrt_math_defines.h Copyright (c) Microsoft Corporation. All rights reserved.)// 이 매크로를 사용하기 위해서 _USE_MATH_DEFINES를 including 하기 전에 defin..