donghoony


  • JPA @Query에서 비트 연산자 (Bitwise AND) 사용하기, 트러블슈팅

    TL;DR @Query 어노테이션이 붙은 친구들은 HQL/JPQL로 작성한다. Hibernate 6.0.0 버전부터 $\texttt{BITAND}$ 함수가 추가돼 이를 사용할 수 있다. 단, $\texttt{BITAND}$ 내부에 우리가 함수 인자로 던져주는 값이 들어있다면, 해당 값을 아래와 같이 적절히 캐스팅해 주어야 한다. 비트 연산 교내에서 진행했던 해커톤에서 비트 연산한 값을 기준으로 데이터베이스에 쿼리를 보내야 할 일이 생겼다. 간단한 요리 레시피들을 필터검색할 때, 특정 조리도구들을 포함한 레시피들을 알아내야 했다. 조리도구의 양이 많지 않았어서 조리도구 하나하나를 비트로 하는 $\texttt{long}$ 타입의⋯


  • 인프콘 2023에 다녀오다

    INFCON 2023 좋은 기회로 인프런에서 주관하는 인프콘에 다녀오게 되었다! 작년에도 인프콘 참여를 위해 추첨했었지만 아쉽게 선정되지 못했었다. 올해에는 운이 좋게 당첨이 돼, 많은 사람들과 오프라인 행사를 즐길 기회가 생겼다. 얼마전에 인프콘에서 강의를 구매해서 듣고 있던 참이었는데 운이 좋았던 건지 내 지갑을 열어서 뽑아준 건지는… 🤔🤔🤔 아무튼 최근 나는 이런 오프라인 행사나 컨퍼런스가 있다면 최대한 일정을 맞춰서 방문하거나, 추첨의 기회가 있다면 우선 넣고 보는 편이었다. 알고리즘 대회 쪽도 그렇고, 이런 개발자⋯


  • UCPC 2023 본선 후기

    예선은 참가자로, 본선은 스태프로 대회를 보낸 사람이 얼마나 있을까? 예선에서 6솔로 아쉽게 탈락한 우리 팀을 뒤로하고, 본선에 진출(?)하게 된 기록을 남긴다! 예선 탈락자가 본선 대회에 등장하게 된 이유 대회 본선은 7월 22일(토)에 진행될 예정이었다. 그보다 이틀 앞선 20일에 UCPC 동아리 디스코드에 하나의 공지가 올라왔다. 정말 놀랍게도 이 시간에 깨어 있었다… 디스코드 알림도 원래 자주 확인하는 편이 아닌데도 확인했다… 확인하자마자 함께하고 싶다고 말씀드렸고, 정말 뒤늦게 스태프로 함께하게 되었다. 함께하게 돼서 정말⋯


  • 알고리즘에서의 해시 함수

    해싱이라는 건 알고리즘 문제풀이를 해 봤다면 한 번쯤은 들어 보았을 분류이다. 주로 파이썬의 dict, C++의 unordered_set 등이 해싱을 사용해서 구현되었다. 삼성 동계 DX 알고리즘 특강을 들을 때, 해싱을 직접 구현해서 문제를 풀어야 하는 일이 있었다. 해시 함수를 직접 만든 뒤에, 해시가 가지는 시간상의 이점을 활용해서 문제를 해결한다. 그때 당시에는 문제를 푸는 데 꽤나 고생했다. 시간이 조금 지나서 다시 공부해보고 기록한다. 정리한 글에 오류가 있을 수 있습니다. 댓글로 남겨주시면 반영하겠습니다.방문해주셔서 고맙습니다⋯


  • Tistory에서 WordPress로 이사하기

    블로그에 많은 글을 투고한 것은 아니지만, 티스토리에서 워드프레스로 플랫폼을 옮기게 되었다. 옮기게 된 이유로는 대부분 개인적인 커스텀이 가능하다는 점이다. 나아가 여러 플러그인들을 사용해 더 편하게 편집할 수 있도록 하는 점도 매력적이다. 워드프레스는 호스팅 업체에 돈을 내고 블로그를 열어야 하는데, 마침 집에 시놀로지 NAS도 있겠다, 열심히 일을 해주고 있다… Synology NAS에 WordPress 설치, 도메인 연결하기 및 인증서 발급까지 완료해서 https 접근이 가능한 상태이다. 이전에 사용하던 티스토리 블로그는 잠시 이곳으로 옮겼다. 아직⋯


  • UCPC 2023 예선 후기

    작년에 이어서 올해에도 UCPC에 참가했다. 작년에는 @kth990303, @riroan과 함께 했었다. 올해에도 그 팀을 기대했지만 @kth990303은 바빠서 참석이 어려웠고 @riroan 형은 졸업해버리는 바람에(…) 참가할 수 없었다. 작년 ICPC를 진행하면서 알게 된 @delena0702와는 함께하기로 이야기가 되어 있었다. 접수 마감이 다가오면서 다른 사람을 찾기 시작했고, 몇 명을 컨택해보기도 했지만 이미 팀원이 있었다. 아쉽기도 했지만 올해 동아리를 운영하면서 생기는 선순환이었다. 교내에 많은 사람들이 알고리즘에 관심을 가져줘서 더 즐겁게 할 수 있을 것 같았다. 이곳저곳⋯


  • Typst로 문서를 만들어 보자!

    지금까지는 문서를 만들 일이 있을 때 PPT나 Word를 사용했었는데, 최근에 Typst를 알게 돼서 이를 기반으로 동아리 모의대회 해설을 만들어 보았다. 문법을 익히기도 쉬웠고, 바로바로 변동사항이 미리보기에 반영돼서 매력적이었다.  아직 사용해보지 않았지만, 동시에 여러 명이 문서를 편집할 수 있다는 점도 굉장히 편리한 기능 중 하나. 연말에 진행할 교내 대회 해설도 Typst를 사용해서 만들어볼만 할 것 같다. 레퍼런스에 문법과 관련된 사항이 자세하게 설명돼 있다. 익힌 것들을 기록해두고자 글을 씁니다. 다소 글이 복잡하더라도 양해 바랍니다 🙌🏻 최초에⋯


  • Minimum Spanning Tree 알고리즘의 증명

    MST를 알고 있고, 크루스칼과 프림을 알고 있지만 그냥 쓰고있지 않은가? 이 글을 통해서 “왜 돼?” 에 대한 해답을 찾을 수 있었으면 좋겠다. 그래프가 주어졌을 때, 모든 노드를 연결하는 트리를 Spanning Tree라고 하고, 이 중에서 가장 간선의 가중치의 합이 낮은 트리를 Minimum spanning tree(이하 MST)라고 한다. MST를 만드는 방법으로는 Prim, Kruskal 알고리즘으로 두 가지가 있으며, 각각 $O(ElogV), O(ElogE)$ 가 소요된다. (그래프가 dense할 수록 $E$ 는 $V^2$ 에 가까워지며, $O(ElogE) = O(ElogV^2)⋯


  • 수학적 귀납법을 사용해 재귀를 증명하기

    0. 글을 쓰는 이유와 잡다한 이야기 이번 학기에는 <알고리즘>이라는 과목을 수강한다. 나는 알고리즘을 통한 문제해결(Problem Solving)에 관심이 많아서 혼자 여러 알고리즘들을 공부해왔다. 군대를 다녀오기 전, 새내기 시절에는 동아리 내에서 알고리즘 대회를 열어 문제를 출제하기도 했었다. 코로나의 여파가 가시질 않아 이번 학기도 대부분의 과목들이 비대면으로 진행했고, 알고리즘 또한 그랬다. 1주차 강의밖에 듣지 않았지만, 느낀 게 꽤나 많다. 나의 알고리즘 공부법이 완벽하게 틀렸다고 할 수 있을 정도였다. 여러 알고리즘 유형의 문제들을 풀어왔지만, 문제에⋯


Categories