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 호스트에 설치 된 `크롬`, `파이어폭스`, `오페라` 등을 활용하여 각 브라우저 별 드라이버를 다운로드하지 않더라도 다운로드해서 프로젝트에..
코딩 테스트 문제를 풀면서 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..
지금은 죽전역 근방에서 회사로 출퇴근을 하는데, 출퇴근하는 피로도가 너무 심해서 회사 근처로 방을 옮기기로 마음을 먹었다. 목돈이 없는 신입이기에, 사내의 새마을금고를 통해 전세대출을 받았다. 미리 알고 체크해두면 보다 빠르게 전세대출을 할 수 있는 꿀팁들을 기록해보고자 한다. 이름만 전세대출? 카카오뱅크 전세 대출, 1 금융권 전세 대출 등 이러한 대출들과 달리 사내 새마을금고의 전세대출은 말은 전세대출이지만, 결국엔 `신용대출`이다. 그럼 어떠한 이점이 있을까? 주거지인데 용도변경을 통해 원룸의 1층을 상가지로 만들게 되면 원래 이용하고자 하는 용도 외에 다른 용도로 변경한 것에 해당한다. 일반적인 전세대출의 경우, 해당 원룸은 전세대출이 나오지 않는다. 하지만 신용대출의 성격을 가진 사내 전세대출은..
안랩에 있으면서, 회사에서 있었던 에피소드나 경험들을 정리하지 못하고 지나온 것이 후회가 되곤 했다. 길진 않지만 어느덧 신입 입문 교육이 끝나고, 팀으로 배치받고도 어느 정도의 시간이 지났다. 알면 좋았을 것들과 입사해서야 알 수 있었던 정보들을 기록해두고자 한다. 내가 썼던 다른 글과 마찬가지로 누군가에게 도움이 되면 좋겠다.😉 입문 교육 입문 교육이 어떤 식으로 이루어지는지, 기간은 어떻게 되는지는 포스팅에 포함할 수 없다. 하지만 교육 과정 중에서 삼성전자의 신입사원으로서 알아야 할 지식들 뿐 아니라 많은 것들을 얻을 수 있었다. 그중 가장 소중한 것은 알게 된 동기들이라고 생각한다. 교육 내용들 일단 제조가 기반이 되는 회사이기에, 이와 관련된 배경지식들이 다소 필요한 것 같다. 그래서 SW 직..
이직하고자 하는 회사에 가기 전, 시간이 남아 제주도 여행을 가게 되었다. 작년에는 날씨가 선선하고, 스쿠터의 낭만을 즐기고자 스쿠터로 여행을 하였지만, 올해는 가고자 하는 일자에 태풍도 오고 날씨가 좋지 않아 모닝을 렌트하여 여행을 다녀왔다. 여행을 준비하며 알게 된 것들과, 여행의 발자취들을 회고해보고자 한다. 여행 준비 1. 렌트카 렌트카는 크게 2가지로 나뉜다. 쏘카, 그린카와 같은 어플을 통해 예약하고 비대면으로 사용할 수 있는 방식과 렌트 업체를 통해 예약할 수 있는 방법이 있다. 제주도에서도 교통사고는 발생하므로, 교통사고와 보험 등 다양한 것을 검색해보다가 쏘카, 그린카의 단점이 있다는 것을 알게 되었다. 사고 발생 시, 해당 차량의 휴차에 관한 금액도 지불해야 된다는 것이다. 휴차와 관련..