파이썬에서는 재귀의 깊이가 기본적으로 1000으로 제한이 있다고 한다.하지만, 코딩테스트(알고리즘) 문제를 풀다보면 이 이상을 재귀를 돌아야 하는 경우가 있다. 그때 재귀의 깊이 제한을 변경할 수 있는 코드가 sys.setresursionlimit이다.import syssys.setrecursionlimit(10 ** 6) 아래 첨부된 코드를 풀면서 재귀 깊이 제한을 변경하는 방법에 대해 알게 됐다. [백준] 9466 텀 프로젝트(GOLD 3 - Python)해당 글에서는 텀 프로젝트 문제를 Python을 이용해 풀이하고자 한다. 9466번: 텀 프로젝트이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원da-y-0522.tistory.com 실제 위 문제에서..
해당 글에서는 텀 프로젝트 문제를 Python을 이용해 풀이하고자 한다. 9466번: 텀 프로젝트이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을www.acmicpc.net 원래는 이 문제를 풀 생각이 아니었지만, 아래에 있는 Union-Find를 통해 무방향 그래프의 사이클을 구하는 알고리즘에 대해 공부하다가, 방향 그래프에서 사이클을 구하는 방법이 궁금해져 찾아보다가 해당 문제를 풀게 됐다. [알고리즘] Union-Find(유니온 파인드)로 무방향 그래프에서 사이클(cycle) 찾기1️⃣ 유니온 파인드란?Union-Find는 서로소 집합을 찾는 알고리즘으로, 서로..
1️⃣ 유니온 파인드란?Union-Find는 서로소 집합을 찾는 알고리즘으로, 서로소 집합은 공통 원소가 없는 두 집합을 의미한다. 아래와 같이 루트 노드를 찾고(find), 연결된 두 노드를 합치는(union) 연산으로 이루어져 있다.def find(parent, x): # 부모 찾기 if parent[x] != x: parent[x] = find(parent, parent[x]) # 루트 노드가 아닌 경우, 재귀호출을 통해 루트 노드를 찾음 return parent[x]def union(parent, x, y): # 합치기 x = find(parent, x) y = find(parent, y) if x 2️⃣ 유니온 파인드로..
해당 글에서는 네트워크 문제를 Python을 이용해 풀이하고자 한다.해당 문제는 Union-Find를 사용하는 대표적인 문제로, 해당 알고리즘을 까먹어 다시 상기하고자 다시 풀이했다! 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🔷 문제 설명 🔷 문제 풀이해당 문제를 풀기 위해선 Union-Find의 개념에 대해 알아야 한다.이는 서로소 집합을 찾는 알고리즘으로, 서로소 집합은 공통 원소가 없는 두 집합을 의미한다. 네트워크를 찾는 과정이 서로소 집합을 찾는 과정에 해당하며, 따라서 Union-Find를 이용하면 된다...