본문 바로가기

1st life_Programmer/algorithm2

[6기] 프로그래머스가 직접 이끌어주는 코딩테스트 대비반(Python) 신청 저는 어렸을 때 가장 좋아했던 과목이 수학이었어요 처음에는 수학 공부를 하면 논리적으로 생각하는 능력이 길러지고 똑똑해지는 기분이 절로 들어 재밌었거든요 그런데 학년이 높아질수록 수학을 잘하는 애들이 주변에 계속 나타나기 시작하더라구요? 그 사이에서 자신감이 위축되면서 어려운 문제에 도전하기보다는 회피하게 되었던 것 같아요. 그렇게 수학에 대한 트라우마는 고등학교까지 이어지게 되었고 결국은 극복을 하지 못한 채 졸업을 했답니다 :( 지금 저의 전공은 컴퓨터공학인데 처음에 컴공을 선택한 이유는 단순하게 다른 공대에 비해 수학을 적게 해도 된다는 이유였어요! 하지만 역시 이과는 이과.. 모든 과목의 기본에는 수학이 있더군요 ㅠ 그래도 4년간 나름 열심히 피해 다녔어요 ㅎ 그러다 어느 날 인생을 살면서 콤플렉.. 2020. 6. 11.
DAG, 위상정렬 Directed 방향 Acycllic 사이클이 없는 Graph 그래프 즉 DAG(사일클이 없는 방향 그래프)에서는 특수한 위상정렬이라는 알고리즘을 적용할 수 있습니다! 위상정렬은 어떤 일을 하는 순서를 찾는 알고리즘입니다. 예를 들면, 1을 해야 4를 할 수 있다. 1과 2를 모두해야 4를 할 수 있다. 그렇다면 1 2 4 순으로 일을 해야 합니다. DAG에서 indegree가 0이 되어야 일을 할 수 있습니다. 그러므로 큐에 indegree가 0이 되는 정점을 push하면서 정렬을 진행합니다. bfs와 유사한 구조를 가져요 :) 들어오는 간선 : indegree 나오는 간선 : outdegree 문제를 풀면서 이해해 봅시다! 처음에는 들어오는 간선이 0인 정점을 큐에 넣고 시작합니다. 큐 : 1 2 3.. 2019. 6. 1.