목록ETC (11)

다익스트라 알고리즘은 최단거리 (shortest path) 탐색 알고리즘의 일종으로, DP에 기반한 알고리즘이다. 한 node에서 다른 모든 node 까지의 최단거리를 탐색할 수 있다. 각 노드간 간선이 존재하고, 각 간선의 거리가 주어질 때 최단 거리를 구할 수 있다. 다음과 같은 그래프가 있다고 가정한다. Node 1에서 각 노드까지의 거리를 표로 정리하면 다음과 같다. 노드 1 2 3 4 5 6 거리 0 2 5 1 INF INF 노드 1에서 5,6까지는 바로 갈 수 없으므로 무한으로 가정한다. 이때 1에서 가장 가까운 노드는 4이다. 따라서 node 4를 거칠 경우 1에 대한 최단 거리를 먼저 구한다. 4를 거쳐 갈 수 있는 노드는 3,5 인데, 1-4-3으로 3까지 갈 경우 거리는 1+3 = 4이..

Outlook에서 학생들의 정보를 추출했으니, 엑셀 파일에 해당 학생의 퀴즈 제출 여부에 체크를 하면 된다. 먼저, 엑셀을 사용하기 위해서는 openpyxl 이라는 라이브러리를 사용해야한다. from openyxl import load_workbook 을 사용하여 엑셀의 한 시트에 접근하여 작업을 할 수 있다. 1 2 3 4 5 from openpyxl import load_workbook # Exel API wb = load_workbook(filename="test.xlsx") # 엑셀파일 오픈 sheet = wb.worksheets[0] # 맨 앞에 시트 꺼내기 sheet['C4'] = 'o' # 시트에 작성 wb.save("test.xlsx") cs 위와 같이 엑셀 파일을 열고, 시트 인덱스에 따..

학부생 수업의 조교를 맡게 되었다. 일거리가 늘어났지만 나 또한 학부생때 들었던 수업이라 열심히 하려고 한다. 매주 학부생들은 한 챕터가 끝날때마다 수업에 대한 퀴즈를 풀고, 조교에게 메일로 퀴즈결과를 전송한다. 조교의 업무 중 하나는 매주 메일을 확인하여 제출을 완료 한 학생을 엑셀에 표시하는 것. 매우 단순한 일이다. 다만 문제는 매주 174개의 메일이 온다는것.... 메일 내용에 있는 챕터 번호와 학번을 일일히 확인하고 엑셀에 해당 학번을 검색해서 "o"를 표시하면 되는데.... 20개쯤 하다보니 현타가 왔다. ... 내가 지금 뭘 하는거지 .... 공부할 것도 산더미 인데... 이렇게 시간낭비를 할수는 없다. 사실 귀찮다... 인터넷에서 이런말을 봤다. 파이썬과 구글만 있으면 못할게 없다고. 나는..