본문 바로가기

전체 글225

[백준 9375번 C++] 패션왕 신해빈 (해시, Map/Set) 문제 문제 분석 문제를 잘 읽는 것이 중요하다. 먼저 의상마다 한 가지의 종류씩을 골라서 입을 수 있다. 문제에서 나온 예제 입력을 바탕으로 설명하자면, headgear는 {hat, turban}을 고를 수 있고 아무것도 선택하지 않을 수 있다. 총 경우의 수는 3가지이다. eyewear은 {sunglasses}을 고를 수 있고 아무것도 선택하지 않을 수 있다. 총 경우의 수는 2가지이다. 즉, 해빈이가 입을 수 있는 모든 의상의 경우의 수는 3*2인 6가지이다. 하지만 문제 조건에서 아무 것도 입지 않는 경우는 제외하기로 했다. headgear와 eyewear 에서 아무것도 선택하지 않는 경우 1가지를 뺀 총 5가지가 정답이다. 이러한 아이디어를 바탕으로 구현하면 된다. 정답 코드 - unordered.. 2024. 1. 31.
[백준 17219번 C++] 비밀번호 찾기 (Map/해시) 문제 문제 분석 사이트와 비밀번호를 입력받고 저장해 두었다가 사이트가 주어졌을 때 그 비밀번호를 출력하는 문제이다. - map/unordered_map 에 대한 개념을 알고 있는지를 물어보는 문제이다. - map을 활용하여 비밀번호를 찾는 방법은 여러 가지가 있지만 특히 iterator을 순회하면서 찾고자 하는 값이 map의 second와 일치하는지 일일이 찾아보는 방법과 map의 find 함수를 이용하는 방법이 있는데, map의 find 함수를 이용하여 찾는 것이 빠르다. 정답 코드 이러한 방법대로 구현한 코드이다. - 이때 map의 find 함수는 iterator 형태로 반환한다는 점을 기억해야 한다. - key에 따라 정렬을 해야 하는 것이 중요한 것은 아니므로 unordered_map을 사용한다... 2024. 1. 30.
[백준 10451번] C++ 순열 사이클(BFS) 문제 문제 분석 flood fill 유형이다. 연결되어 있는 뭉텅이의 개수를 세는 유형인데 형태만 바뀌어서 출제된 것이다. 위 행렬을 참고하면 첫 번째 1 3 의 의미는 1번 노드는 3번 노드와 연결이 되어 있다는 의미이다. 두 번째 2 2의 의미는 2번노드와 2번 노드가 연결되어 있다는 것이다. 위 행렬의 연결 상태를 나타낸 것이 위 그림과 같은 것이다. 우리는 이 뭉텅이의 개수를 세어야 한다. 위 그림에서는 3개이므로 정답은 3이다. 이 뭉텅이의 개수를 찾기 위해 DFS나 BFS 탐색을 한다. - 1~n까지 돌면서 아직 방문하지 않은 노드를 찾으면 그 노드를 첫 번째 노드로 DFS/BFS 탐색을 실행한다. - 최종적으로 1~n까지 돌면서 DFS/BFS 탐색을 몇 번 돌았는지가 우리가 찾고자 하는 뭉텅.. 2024. 1. 30.
[웹 크롤링 이상현상] 크롤링 중에 렉이 심해지는 현상 해결 방법 문제 상황 크롤링 프로그램을 실행한 후 컴퓨터 렉이 전체적으로 심해지는 현상이다. 특히 크롤링 프로그램을 만드는 과정에서 많은 테스트를 하다보면 빈번하게 일어날 수 있다. 문제 원인 웹 크롤링 시 headless을 사용하게 되면 백그라운드 프로세스에 돌아가게 된다. 백그라운드 프로세스에 있는 것을 종료해주지 않고 계속 쌓여서 생기는 문제이다. 문제 해결 크롤링으로 실행된 백그라운드 프로세스에 실행되고 있는 프로그램을 종료시킨다. 1) [Ctrl]+[Shift]+[Delete] 을 동시에 눌러 [작업 관리자]를 선택한다. 또는 [윈도우 버튼] 을 눌러 검색창에 "작업 관리자"를 검색한다. 2) 작업 관리자 창을 내리면 "백그라운드 프로세스" 항목이 보인다. 여기서 Google Chrome(크롤링 프로그램으.. 2024. 1. 27.
[Python] 파이썬 selenium.common.exceptions.WebDriverException 오류 해결 방법 문제상황 오랜만에 크롤링을 하려고 기존 코드가 잘 작성되는지 실행해보다가 아래와 같은 오류가 발생했다. 보통 'selenium.common.exceptions.WebDriverException' 메시지가 있으면 아래의 문제 해결 방법으로 해결하면 된다. chrome driver 버전을 업그레이드 하면서 수시로 발생하는 오류이므로, 이 글을 저장해둔다면 오류가 떴을 때 빠르고 유용하게 해결할 수 있다. selenium.common.exceptions.WebDriverException: Message: unknown error: cannot connect to chrome at 127.0.0.1:7312 from session not created: This version of ChromeDriver onl.. 2024. 1. 26.