[재귀함수]하노이탑
##재귀 하노이 백준 def hanoi(N, a, b, c) : global cnt cnt=0 if N==1 : print(a+' '+c) cnt+=1 else : hanoi(N-1,a, b, c) hanoi(1, a, c, b) hanoi(N-1, b, c, a) N=int(input()) print(cnt) hanoi(N,'1','2','3')
##재귀 하노이 백준 def hanoi(N, a, b, c) : global cnt cnt=0 if N==1 : print(a+' '+c) cnt+=1 else : hanoi(N-1,a, b, c) hanoi(1, a, c, b) hanoi(N-1, b, c, a) N=int(input()) print(cnt) hanoi(N,'1','2','3')
그래프는 연결되어 있는 객체 간의 관계를 표현하는 자료구조이다. 트리는 그래프의 일종으로 나무를 뒤집어 놓은 모양이며, 객체 간 상하 관계(부모-자식)가 있어 간선이 하위 노드 방향으로만 이어진다. (a)는 트리이고 (b)는 그래프이다. 각 지점은 노드(node) 또는 정점(Vertices)라 부르고, 노드들을 있는 선은 간선(edge) 또는 링크(link)라고 한다. 그래프는 G(V,E)로 표시한다. V(G)는 그래프G의 정점들의 집합을 의미하며, E(G)는 간선들의 집합을 의미한다. 차수는 노드에 연결된 간선의 개수를 말한다. 그래프의 종류 무방향 그래프 : 노드들을 잇는 간선에 방향이 없는 그래프를 말한다. 무방향 그래프에서 차수(degree)는 노드에 연결된 다른 정점의 수이다. 간선들의 집합을 ..
본격적으로 DFS, BFS 알고리즘을 시작하기전 스택과 큐부터 꼼꼼히 공부해야겠다고 생각해서 시작했다! 스택 -> DFS -> 큐 -> BFS 순서로 공부하리라! 백준 10828 스택문제는 알고리즘 수업시간에도 스택을 다뤘어서 그렇게 어려운 난이도는 아니었다! 하지만 명확하게 기억나지 않는 몇 가지들이 있어 문제풀면서 사용한 문자열 메소드, scanner 메소드 등을 모두 정리해보자 String.equals() 문자열이 같은지 확인해준다 String.length() 문자열 길이를 반환한다 String.split() 큰 따옴표 안에 들어가는 문자로 문자열을 구분자로 문자열을 구분하여 배열로 리턴한다. 구분자를 입력하지 않으면 공백이 기본이다. Scanner.next() 문자열을 띄어쓰기로 구분하여 입력받는..
어렵지 않은 문제였다. 리스트 슬라이싱과 정렬만 안다면 풀 수 있다. def solution(array, commands): answer = [] for a in range(len(commands)) : i = commands[a][0] j = commands[a][1] k = commands[a][2] temp = sorted(array[i-1:j]) answer.append(temp[k-1]) return answer 다른 사람들의 풀이에서 공부하고 싶은 것! list(map(lambda 이용 i,j,k = commands[a] 로 한 번에 언패킹 cf. 파이썬스러운 for문 작성하는 법을 더 공부해야겠다.