![[알고리즘] Upper Bound, Lower Bound](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FoDTHE%2FbtskRauTjjs%2FAAAAAAAAAAAAAAAAAAAAALCqTOuBNGAXmXVQ48jGZ_iErQYiSUr5ez7yYGZKuTQG%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D1f3w6jeUv2Uid%252BqVUBT991lZbg0%253D)
서론 Upper Bound, Lower Bound는 이진탐색을 활용한 알고리즘이다. [알고리즘] 이진탐색(이분탐색) - Binary Search Binary Search 정렬된 데이터 집합을 이분화 하면서 탐색하는 방법 정렬되어 있어야 한다 보통 세 개의 변수를 지정해 두고 (ex : left, mid, right) 찾고자 하는 값, 즉 mid의 값이 찾아낸 값보다 크면 mid는 mag1c.tistory.com 백준에서 이진탐색을 활용한 문제를 풀다가, 깔끔하게 풀리지 않아서 풀고 난 뒤 다른 분들의 코드나 설명을 참조했더니, 내가 사용했던 조건들이 Upper Bound라는 것을 알게되었고, 정리하고자 포스팅을 진행한다. [백준 1654번 / JAVA] 랜선 자르기 문제 링크 https://www.acm..
![[백준 1654번 / JAVA] 랜선 자르기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb2TavC%2FbtskJsjB0ku%2FAAAAAAAAAAAAAAAAAAAAAF0foEwomqHa4MJaqrbmtYo4waA3A-zmmQCO_1ADE8Xk%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DeXDms7tGefawvZJd867pyd4YOmQ%253D)
문제 링크 https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 풀이 이진탐색을 활용하는 문제이다. [알고리즘] 이진탐색(이분탐색) - Binary Search Binary Search 정렬된 데이터 집합을 이분화 하면서 탐색하는 방법 정렬되어 있어야 한다 보통 세 개의 변수를 지정해 두고 (ex : left, mid, right) 찾고자 하는 값, 즉 mid의 값이 찾아낸 값보다 크면 mid는 mag1c.tistory...
![[백준 1920번 / JAVA] 수 찾기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbAAHDM%2FbtskJcggzBY%2FAAAAAAAAAAAAAAAAAAAAAGlfavYLJLDQ4TxVY3bkyWUk5aD5x8sR7Hk37C-GYw_r%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DDuFizJoCm9FeBE%252FLux%252BTmoxZMoA%253D)
문제 링크 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 서론 지조있게(?) 프로그래머스 업로드를 기다리다가 드디어 포기하고 백준에 입문하게 되었다. 찾아보니 작년 12월에 풀었던 이력이 있었으며, 그 때는 백준에서의 테스트 포맷이 프로그래머스와 너무 달라 입출력에 난항을 겪어 후퇴했던 기억이 있다. 하지만 leetcode와 hackerrank로 단련된 지금, 백준을 통해 꾸준히 문제를 풀어 나..

계기 나는 단지 개발에 흥미가 생겨서 개발 공부를 국비학원을 통해 시작했던 비전공 출신 개발자이다. 처음 접해보는 분야이고, 꽤 전문성이 요구된다고 생각했기 때문에, 해나가고 있는 과정들에 대해 기록을 해야겠다고 생각했다. [ 티스토리, 벨로그, 노션 ] 이 세 플랫폼을 결정했고, 결국 티스토리로 시작하게 되었는데, 가장 큰 이유는 옛날 싸이월드처럼 통계 지표가 구현되어 있다는 점이다. 그 시대 사람 중 한명으로써 참을 수 없는 유혹 반성 평소에도 기록하는 것을 곧잘 하긴 하지만, 키워드 단위의 중요 포인트들만 기록하는 습관이 있는데, 남들이 볼 수 있는 글을 쓰는것과 내가 알아볼 수 있는 글을 쓰는 것에는 분명히 차이가 있다고 생각한다. 내 기록들이 남들에게 보여지고, 피드백 받는것을 적극 원했기 때문..
![[알고리즘] Union Find](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FCwa0J%2FbtsH64zlktx%2FAAAAAAAAAAAAAAAAAAAAABr-Rx2NsUdpm3EvHRLTs7meEAVs_moadSQdBghK2Ji6%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DNzSKOjbo3XS%252BgJgyU5xE1juyjZ0%253D)
서론올해 초부터 어느정도 적당한 난이도 이상의 코딩테스트들에 응시하고 있는데,항상 5번문제는 MST관련 문제가 나왔다. 조금만 변형되어도 풀기가 애매해질 정도로 얕은 정도로만 학습을 한 상태였기 때문에, 복기를 위해 관련된 것들을 학습하려고 한다. Union FindDisjoint Set(서로소 집합)을 관리하는 데 사용되는 알고리즘으로, 각 집합의 대표 요소를 통해 집합을 식별한다. 대표 요소를 해당 집합의 부모라고도 부르며, 루트로 표현된다. 일반적으로 작은 번호를 부모로 정하는데, 이는 트리의 높이를 최소화하여 연산의 효율성을 높일 수 있다. 여러 노드가 존재할 때, union과 find 연산을 수행한다.Union : 노드를 연결Find : 특정 노드의 루트 노드를 찾음 예제 원소ABC부모A..
![[Java/Linux/Selenium] WebDriverManager 사용하기 ② - Linux환경에서의 구동을 위한 각종 에러 해결](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcgUhT1%2FbtsjD9d72bU%2FAAAAAAAAAAAAAAAAAAAAAIRxKglpqp_uLj3w5awGgA654WDgDQGDfAq6udnt4n2N%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DDyHO7Vh%252BL0DhNm%252FsPQ7T0N8C8Pg%253D)
서론 아래의 포스팅에서, 간단하게 WebDriverManager Library를 사용하여 ChromeDriver.exe를 수동으로 설치하고 버전을 호환시킬 필요가 없는 방법을 알아보았다. [Java/Selenium] WebDriverManager 사용하기 ① - Chrome Verison (org.openqa.selenium.remote.ProtocolHandShake createSession) 에러 메세지 Starting ChromeDriver 113.0.5672.63 (0e1a4471d5ae5bf128b1bd8f4d627c8cbd55f70c-refs/branch-heads/5672@{#912}) on port 42808 Only local connections are allowed. Please se..
![[Java/Linux] Linux 환경에서 Java App compile 및 실행하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb9tey4%2Fbtsjwq1ecqq%2FAAAAAAAAAAAAAAAAAAAAAIW7pOD1diypuM22I_prq8xIs166YuaV9CVnztI0_hPW%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DmGt4gl5dEOnHL9LZh8nKDbXmrIA%253D)
서론 요새 계속 크롤러 관련된 포스팅을 진행중인데 크롤러를 만들어야 할 일이 있는데 하필 대상이 대형 포털이기 때문에 시간이 좀 많이 걸리는 것 같다. 특히 대형 포털의 경우 같은 IP라고 인식하는 규칙이 존재하는 것 같고 같은 사용자라 판단될 때 요청이 많이 오는 경우 일정시간 차단해버린다던가 아예 차단해버린다던가 하는 경우가 있기 때문에.. 나의 경우 한번 밴 당하면 24시간 대기해야하기 때문에, 24시간 동안 내가 만들어나가는 크롤러에 대한 테스트가 불가능해서 벌써 작업이 4주 가까이 진행되는 것 같다.. 나의 경우 다른 OS에서 application을 run 시키는 일이 처음이었기 때문에.... 아니, 애초에 타 OS를 사용하는 경험이 처음이었기 때문에. 복기를 해보자 한다. 에러 메세지 cann..
![[Java/Selenium] WebDriverManager 사용하기 ① - Chrome Verison (org.openqa.selenium.remote.ProtocolHandShake createSession)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FlgWYy%2FbtsjGJxQsZm%2FAAAAAAAAAAAAAAAAAAAAACQA-g2ROh4V4C06LyzAhJRv5ttvRnHBpci95aIJHTEB%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DmitPx6dJ0zxxMsVCP%252FN3YLS4N%252FY%253D)
에러 메세지 Starting ChromeDriver 113.0.5672.63 (0e1a4471d5ae5bf128b1bd8f4d627c8cbd55f70c-refs/branch-heads/5672@{#912}) on port 42808 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully. [1686528899.643][WARNING]: This version of ChromeDriver has not been tested wi..