목록전체 글 (40)
이것도 알아야 하네?
처음에는 최적화로 DP를 활용하는 문제인가 고민해봤지만, DP를 이용하여 구간을 구하는 쉬운 방법이 떠오르지 않아 노선을 변경했다. 한 번 훑으면서 조건에 맞는 구간을 출력한다. 우선 코드 상으로 left는 구간의 시작점을 right는 구간의 끝점을 나타낸다. while()을 통해 right는 한 번 훑으면서 새로운 보석을 발견했을 때, contains라는 dict에 값을 저장한다. contain이 기존에 구한 unique 보석의 개수를 모두 충족했을 때부터 left를 변경한다. 만약 이미 한 개 이상 보석이 존재할 때 해당 구간은 여벌의 보석을 소유한 것이므로 오른쪽으로 이동하며 구간에서 제외한다. def solution(gems): left = 0; right = 0 targets = set(gems..

다익스트라 알고리즘 개념 다익스트라 알고리즘 또는 데이크스트라 알고리즘은 그래프에서 노드(Node) 간의 최단 경로를 찾는 알고리즘 중 하나로, 시작 노드(Node)가 주어졌을 때 해당 시작점으로부터 다른 모든 노드(Node)까지의 최단 경로 찾습니다. 해당 알고리즘은 도로 교통망 및 라우팅 프로토콜 등에서 많이 활용되고 있습니다. 예를 들어, 그래프의 꼭짓점들이 각각 도시를 나타내고, 변들이 도시 사이를 연결하는 도로의 길이를 나타낸다면, 다익스트라 알고리즘을 통하여 두 도시 사이의 최단 경로를 찾을 수 있습니다. 다익스트라 동작 소스(Source)는 시작 노드(Node)이며, dist[]를 시작 노드(Node)와 시작 노드(Node)를 포함한 모든 노드까지의 거리로 정의합니다. dist[]에서는 시작..
csv 파일이란? csv 파일이란 comma separated values 의 약자로 데이터를 저장하는 파일 형식 중 하나입니다. 이름에서 예측할 수 있듯이 record에 저장되는 값들이 ',(comma)'를 이용하여 나열되어 있습니다. csv파일 읽기 csv파일도 파일형식이기 때문에 (1) open() 구문을 사용하여 일반 파일처럼 읽고 쓸 수 있고, 추가로 Python에서는 (2) csv 파일을 처리할 수 있는 기능을 가진 모듈을 built-in으로 제공하기 때문에 해당 모듈을 사용하여 더욱 쉽고 직관적으로 csv 파일을 조작할 수 있습니다. // test.csv 내용 a,b,c 1,2,3 4,5,6 (1) open() 사용하기 f = open(file_name) ... f.close() 파일을 읽을..