Trie를 개념만 알고, 생각해보니 직접 구현해본 적이 없었다. 알고리즘 문제 풀이를 할 때, 요긴하게 사용하기 위한 목적으로 정리해보고자 한다. 다른 곳에서 검색할 수 있는 것과 같이 동적으로 할당하는 것이 아닌, 문제의 조건에 맞게 정적으로 Trie를 할당해두고, 사용하는 방식을 다루고자 한다. Trie? 트라이 (컴퓨팅) - 위키백과, 우리 모두의 백과사전 "A", "to", "tea", "ted", "ten", "i", "in", "inn"를 키로 둔 트라이. 이 예제에는 모든 자식 노드가 알파벳 순으로 왼쪽에서 오른쪽으로 정렬되어 있지는 않다. (루트 노드와 't' 노드) 트라이(trie)는 컴퓨터 ko.wikipedia.org Trie란 root를 기준으로 문자열을 저장할때, 각 노드에 어떤 ..

셀레니움을 통해 자동화하다 보면, 정보 수집을 위한 자동화도 있지만 티켓팅 후 특정 프로그램 실행 또는 게임 자동 실행 등 다양하게 사용될 수 있다. 그중에 제목과 같이 특정 프로그램을 여시겠습니까?라는 문구가 셀레니움 상에서는 컨트롤되지 않아 궁금해서 찾아보게 되었다. 다른 사람들도 그런지 찾아보자 Selenium Python getting around "Open .app?" I am trying to write e2e tests for a Slack bot and while logging in via browser it always asks whether I'd like to use the Slack desktop app instead of continuing with the browser (its ..
오랜만에 셀레니움을 활용할 일이 있어 기존처럼, 크롬 드라이버를 로컬에 직접 다운로드하여 사용하였다. 그런데 작성한 코드를 exe로 만들어 다른 사람에게 배포할 일이 생겼다. exe를 만들고, 크롬 드라이버 버전이 달라 다른 환경에서 실행 시 호환되지 않는 것이 있어 어떻게 하지 고민하면서 검색해보다가 좋은 라이브러리가 있어서 다뤄보고자 한다. webdriver_manager? webdriver-manager Library provides the way to automatically manage drivers for different browsers pypi.org 호스트에 설치 된 `크롬`, `파이어폭스`, `오페라` 등을 활용하여 각 브라우저 별 드라이버를 다운로드하지 않더라도 다운로드해서 프로젝트에..

코딩 테스트 문제를 풀면서 PQ(Priority Queue)를 직접 구현하여야 할 경우가 있었다. 단순히 Parent, Left Child, Right Child의 인덱스만 아는 것이 아니고, push, pop, updaet, erase 모든 기능에 대해 어떤 식으로 동작하는지 간략히 정리해보고자 한다. PQ에 삽입할 데이터 struct Info { int idx; int score; } PQ에 삽입할 데이터는 일반 변수가 아닌, 사용자 지정 변수를 기반으로 정렬이 가능한 경우를 다루고자 한다. 위 구조체 처럼 score를 기준으로 정렬될 수 도 있고, 경우에 따라 다양한 우선순위에 따라 정렬시킬 수 있다. `idx`의 경우, PQ에 push, pop을 할 때는 필요하지 않지만, PQ에 update, e..