c++에서 문자열을 다루는 경우는 크게 부분문자열을 만드는 경우와 특정 구분문자(delimiter)를 기준으로 문자열을 나누는 경우이다. 어렵진 않지만, 모르면 삽질해야하니 정리해두고자 한다. substr #include #include using namespace std; string getSubStr(string s, int len) { string subStr; vector subStr; // 자를 길이 for (register int end = 1; end < len; end++) { // 자를 위치 for (register int start = 0; start < len; start++) { subStr.push_back(s.substr(start, end)); } } return subStr;..
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 호스트에 설치 된 `크롬`, `파이어폭스`, `오페라` 등을 활용하여 각 브라우저 별 드라이버를 다운로드하지 않더라도 다운로드해서 프로젝트에..