목록전체 글 (257)
Joonas' Note
성능 테스트 코드를 작성하다가, 평균을 실시간으로 구하는 방법을 글로 정리해볼까 한다. (직관으로) 어렸을 적에 이게 당연한 줄 알았다. 근데 몇개의 반례를 찾고는 틀렸다고 생각했다. 그런데 학부 시절에 교수님께서 '그런 것이 있다'고 말씀해주셨다. 이름은 Moving average이고, 한국어로는 모르겠다. 나는 데이터 범위에 따라 점진적으로 평균을 구해간다는 느낌으로 점진적 평균 또는 실시간 평균으로 부르고 싶지만, 통계쪽에서 "이동 평균"으로 부르는 모양이다. 아무튼, 본디 평균을 구하는 식은 전체 합 Sn에서 데이터의 개수 n만큼 나눈 Sn/n 이다.그럼 이것이 뭐가 문제인가?n개를 전부 더하거나 카운팅 하지 않으면 평균을 구할 수 없다. 어떤 실험 \(X_..
시험 직전에 벼락치기 겸 수업 내용을 전부 정리하는 게 꽤 좋았다.정리를 하다가 예상 문제가 떠오르기도 한다. 근데, 전에 파일구조도 그렇고 이것도 반쪽짜리다. (기말고사 범위만 정리함)문서 정리하다가 우연히 아이폰에서 발견했는데, 아까워서 올려본다.목차09. Digital Signature Digital Signatures Security Model Signature Schemes RSA ElGamal DSA 10. Hash functions and Message Authentication Codes Hash function SHA Message Authentication Codes (MAC) 11. User Authentication User Authentication Password-based au..
2014년부터 2019년까지 내가 github을 사용했던 흔적들을 모두 모아봤다.여기서 초록색(흔히 말하는 잔디)은 이 문서(GIthub - Learn how we count contributions)를 기준으로 색칠된다.어떤 레포지토리에 이슈를 적은 것, Pull Request 한 것, commit 한 것, 심지어는 start를 누른 것도 포함되는 것 같다.이렇게 모아서 보니 패턴이 없는 듯 있는 것 같기도 하고.. 사실, Github을 사용한 이유는 개인 데스크탑이 없어서 컴퓨터를 자주 옮기다보니까 저장소로만 사용했는데, 조금 더 지나서야 버전 관리를 이유로 사용할 수 있었다. 한참 더 지나서야 issue, PR 까지 사용했지만 이렇게 보니 생각보다 꾸준히 개발했나보다.
블로그 활동 자체는 2005년쯤 네이버 블로그에서 시작했지만,프로그래밍에 관련한 글을 적기 시작한 것은 2014년에 구글 블로그로 시작해서, 티스토리까지 꽤 오랜 시간이 지났다.작성한 글이 한 250개는 되는 것 같다. 그래서 한번 달력으로 내 흔적들을 확인해보고 싶었다.2015년은 군대에서 열심히 일을 한 것이 분명하다. 그 외에는 간간히 놓지 않고 글을 적으려 했나보다.내 커밋 기록도 한번 정리해봐야겠다.
링크: https://www.acmicpc.net/problem/5535문제각 날짜마다 입을 수 있는 옷들이 있고, 다음 날과 옷의 화려함의 차이가 최대한 크도록 옷을 고르는 문제이다.날짜마다 가능한 옷을 저장해둔다. 그 날에 한해서는 옷의 종류나 순서가 중요치않길래 화려함 정도를 넣어버렸다. 이제 각 날짜마다 옷을 하나씩 고른다면, 총 D일동안 N가지의 옷을 고르므로 경우의 수는 O(ND) 이다. 어떤 d번째 날에 A라는 옷을 골랐다고 치자. 그럼 d+1번째 날 이후로는 d번째 날에 A를 고른 영향이 계속 생긴다.즉, d번째 날에 a를 고른 이후로는 하나의 부분 문제로 볼 수 있다. 점화식을 dp[D][N] = D번째 날에 N번째 옷을 선택했을 때의 화려함의 최대값 으로 세우면 \(O(ND..
2017년에 회고록을 적으려 시도했으나, 처참히 실패했다. 괜히 어설프지 않은 글을 적어보려는 욕심이, 결국은 시작하지도 완성하지도 못했다.2019년 회고록은 그런 욕심 부리지 않고 생각나는대로 적을거다. 적진 못했지만, 2017, 2018년 그리고 2019년까지를 돌아보면 공통점이 있었다.알고리즘 문제풀이와 토이 프로젝트는 꾸준히 해왔었다. 내가 무얼 하고 싶은지를 말해주는 내 발자국들이겠다. 사실 2019년은 적을 내용이 별로 없다.1월부터는 계속 취업 준비로 자기소개서 적고, 내가 뭘 했었는지, 어떤 경험들을 했었는 지, 그 과정에서 무슨 생각을 했었는 지 스스로 정리하는 시간이 더 많았다. 이 시기에는 아마 이전 프로젝트들의 정리글이나 후기가 종종 올렸던 것 같다. 그런 와중에도 "뭘 더 만들어볼..
문제2019년 초에 신년을 맞아 싱가포르 국립대학교(NUS) 천재들과의 문제 배틀이 있었다.그 중 하나로, 빨간 화살표가 가리키는 방향에는 빨간 화살표가 2개만, 회색 화살표가 가리키는 방향에는 빨간 화살표가 2개가 아니도록 화살표를 색칠하는 문제가 있었다.규칙을 만족하는 포인트를 파악해서 논리적으로 연결해나가는 것이 맞지만, 우리는 컴퓨터가 있다.무식하게 모든 경우를 전부 확인해보자. 정말 답이 하나일까? 세로 4행, 가로 5열 총 전체 20개의 칸을 모두 색칠해보는 경우는, 각 칸을 색칠한다/하지않는다 2가지의 선택이 20개 칸마다 있는 것이므로O(220)이다. 색칠 후에는 각 화살표들이 모두 규칙을 만족하는 지 확인해야하므로 연산이 조금 더 붙지만, 그래도 3천만번 이하로 계산된다.이 ..
(venv/db) joonas@DESKTOP-JOONAS $ ~/DB test $ pip install psycopg2Requirement already satisfied: psycopg2 in c:\users\joona\venv\db\lib\site-packages (2.8.4)(venv/db) joonas@DESKTOP-JOONAS ~/DB test $ python manage.py migrateTraceback (most recent call last): File "C:\Users\joona\venv\db\lib\site-packages\django\db\backends\base\base.py", line 220, in ensure_connection self.connect() ....(중략).....