재귀

    [Python] 백준 1074번 : Z

    문제 1074번: Z [ 문제 조건 ] Z 모양 순서대로 방문 입력한 r행 c열이 몇번 째로 방문하는지 출력 [ 해결순서 ] 1번째 풀이 -> 실패 재귀적으로 모든 분면의 모든 값을 확인해서 2X2 배열일 때 ( 더이상 등분하지 않아도 되면 ) 조건에 맞을 때까지 값을 하나씩 늘려가면서 몇번째 방문인지 계산하다가 r행 c열의 조건이면 여태껏 더한 방문값을 출력하고 종료한다. 이렇게 하면 시간 초과가 날 뿐만 아니라, 입력한 값에 포함하는 분면이 아닌 값들도 모두 확인해 비효율적인다. 2번째 풀이 (참고) 이 풀이는 아이디어를 참고한 후 코드를 짜면서 해석했는데, 이 문제를 풀 때 내가 처음에 생각해낸 아이디어와 비슷했다. (코드를 못 짜겠어서 1번째 풀이로 풀었지만..) 입력한 값이 몇 사분면인지 계산한..

    [JAVA] 백준 1991번 - 트리순회

    문제 1991번: 트리 순회 [ 해결순서 ] 한줄에 띄어서 입력받으므로 띄어쓰기를 붙여 문자열을 배열로 전환하여 노드에 저장하였다. 문제를 해결하기 위해 노드, 트리 클래스가 있어야 한다. 노드 클래스 : 루트, 왼쪽 자식, 오른쪽 자식이 있고, 노드의 값을 입력받아 지정 가능하다. 트리 클래스 : 여러개의 노드가 모여 트리를 구성하므로, 노드가 있어야 함 add() : 트리에 노드를 추가하는 메소드이며 처음을 제외하고는 search()를 사용하여 추가. search() : 어떤 노드밑에 서브트리가 생기는지 재귀호출하며 찾음. 전위순회 preorder : 루트 → 왼쪽 서브트리 → 오른쪽 서브트리 방문 중위순회 inorder : 왼쪽 서브트리 → 루트 → 오른쪽 서브트리 방문 후위순회 postorder ..