공간이 연속 할 경우 합치기
·
카테고리 없음
한쌍의 시작점, 끝점 목록과 이 목록에 추가할 한쌍의 시작점, 끝점이 주어질때, 이를 직선 상에서 연속 될 경우, 하나로 묶는 방법이다. 예를 들어, (1, 5), (8, 10) 과 새로 추가할 점으로 (6, 7) 이 주어진다면, (1, 10) 으로 반환한다. 이를 표현하는 코드를 작성하면, 아래와 같다. from bisect import bisect_left def find_connected_lists(point_list, new_point): # 새로 들어온 순서 쌍을 배치할 위치를 찾는다. idx = bisect_left(point_list, new_point) l_merge = False r_merge = False # 앞쪽을 합쳐야 되면 l_merge 를 True 로 if new_point[0]..
DFS/BFS 구현 시 큐에 넣기 전에 방문 처리 할 것
·
카테고리 없음
백준 1012번: 유기농 배추 ( https://www.acmicpc.net/problem/1012 ) 파이썬으로 풀이하다가 깨달은 사실이다. 먼저 아래와 같이 구현해 보았다.def bfs(_x, _y): q = deque() q.append((_x, _y)) while q: vx, vy = q.popleft() arr_map[vx][vy] = 0 for dx, dy in [(0, 1), (0, -1), (1, 0), (-1, 0)]: nx, ny = vx + dx, vy + dy if 0  BFS 를 구현하기 위해 1. 최초 방문지를 큐에 추가2. 큐에서 방문하지 않은 곳이 있다면, 큐에서 뺀다음 방문처리3. ..
파이썬3의 딕셔너리의 keys() 메서드 반환 값은 리스트가 아니야.
·
카테고리 없음
얼마 전 회사에서 코드관련 글 중, 누군가, if a in dict_type.keys():    블라블라블라~~~ 는 in 연산 시 선형적으로 탐색하므로 시간 복잡도가 O(n) 된다는 글을 보았다.파이썬 위키의 시간 복잡도 관련 글 ( https://wiki.python.org/moin/TimeComplexity )에서도 따로 Keys() 메서드에 관한 내용은 없었다. 정말 일까? 코드로 테스트해 보았다.\ import timeittest_dict = {x:x*2 for x in range(100000)}test_list = list(range(100000))print(type(test_dict.keys()))print(timeit.timeit(lambda: 999999 in test_dict.keys(..
처음 시작하는 블로그
·
카테고리 없음
무슨 내용을 써야 할지 무엇을 해야할지 잘 모르겠지만, 이제 하나하나 해보려고 합니다. 클라우드, 일상생활, 회사생활 틈 날떄마다 올리겠습니다.