본문 바로가기

전체 글15

[Python] defaultdict와 인접리스트 Python으로 알고리즘 문제 풀이 중 인접리스트를 사용해야 풀리는 문제를 많이 볼 수 있었다. 인접리스트를 구현하는데 defaultdict를 사용하는 풀이가 자주 보여서 정리하고자 한다. collections.defaultdict - collections.defaultdict는 값(value)에 초깃값을 지정하여 딕셔너리를 생성하는 모듈 - 아래는 딕셔너리를 사용한 집계코드 # 딕셔너리를 사용한 집계코드 d = dict() for c in text: if c not in d: d[c] = 0 d[c] += 1 print(d) - 딕셔너리로 이와같은 집계코드를 작성할 땐, 중간의 if문 처럼 초깃값을 신경써야 한다. - 하지만, collections의 defaultdict를 사용하면 이러한 번거로움을 피.. 2023. 4. 14.
[Python] PGS 부대복귀 성공 from collections import deque def solution(n, roads, sources, destination): answer = [] graph = [[] for _ in range(500001)] # 경로 정보를 담는 그래프 for src, des in roads: graph[src].append(des) graph[des].append(src) # 목적지에서 각 지역까지의 최단 경로를 구하는 BFS q = deque() q.append(destination) visited = [0 for _ in range(500001)] visited[destination] = 1 while q: now = q.popleft() for nq in graph[now]: if not vis.. 2023. 4. 13.
[Docker] EC2의 파일경로, 백엔드의 Springboot 컨테이너의 파일경로 - Selenium 크롤링 코드에서 chromedriver의 경로를 설정해주는데 EC2 의 경로가 아니라 docker 내의 spring container의 경로로 chromedriver 파일을 설치해야한다. Q: spring container에 어떻게 접속할까? A: Docker 컨테이너에 접속하기 docker exec -it /bin/bash -it는 표준입출력을 열고 tty를 통해 접속하겠다는 의미. 컨테이너명 뒤에는 접속할 때 어떤 쉘을 사용할지 지정. Reference https://velog.io/@choi-yh/Ubuntu-20.04-selinium-%EC%84%B8%ED%8C%85 2023. 4. 5.
[Docker] none image, Dangling Image "나중에 Docker image들을 한번에 지우는 방법을 까먹었을 때를 위해 기록해 놓은 글 " 도커를 사용하다보니 image들이 많이 쌓였다. Q : image가 쌓이는 이유는? A : 빌드 할 때, 이미 존재하는 레포지토리:태그명과 중복된 상태로 빌드를 해서 그렇다고 한다. 또한 이미지 빌드중에 에러가 발생하여 온전하게 빌드 되지 못할 때 나타남. Dangling Image라고 표현을 한다. Docker에 쌓인 image들을 한번에 지우기 위한 코드 docker rmi $(docker images -f "dangling=true" -q) 2023. 3. 23.