jungle [Today I Learned 07] 1. 트리 순회 1. 이진 검색 트리란? 부모 노드에 왼쪽과 오른쪽 자식 노드를 가지는 트리이다. 즉, 부모 노드는 자식 노드를 두 개만 갖는 트리를 말한다. 전위 순회는 Root-Left-Right 순으로 순회한다. 중위 순회는 Left-Root-Right 순으로 순회한다. 후위 순회는 Left-Right-Root 순으로 순회한다. 위와 같은 이진 트리가 있을 때 전위 순회는 루트, 왼쪽, 오른쪽 즉, 3... jungleTILTIL [SW사관학교정글] WEEK01 개발일지 - Ⅴ 수학 순열이란 몇 개를 골라 순서를 고려해 나열한 경우의 수를 말한다. 즉, 서로 다른 n개 중 r개를 골라 순서를 정해 나열하는 가짓수이며 순열이라는 의미의 영어 ‘Permutation’의 첫 글자 P를 따서 nPr로 표시한다. 순열은 순서를 고려하기 때문에 [A, B, C]의 리스트에서 2개의 원소를 골라 순서를 정해 나열하면 [(A, B), (A, C), (B, A), (B, C), (... jungle수학개발일지정글jungle [Today I Learned 07] 2. 백준(#2263) 트리 순회에 대해 공부하던 도중 중위 순회와 후위 순회의 값을 주고 전위 순회로 바꾸는 문제를 마주 했다. 트리 순회에 대해서 다 이해했다고 생각했는데 막상 문제를 마주하니깐 어떻게 풀어야 될지 감이 잡히지 않았다. 그래서 답을 보고 이해한 대로 작성해보려고 한다. 문제 n개의 정점을 갖는 이진 트리의 정점에 1부터 n까지의 번호가 중복 없이 매겨져 있다. 이와 같은 이진 트리의 인오더와 포... jungleTILTIL [SW사관학교정글] WEEK01 개발일지 - Ⅱ 재귀함수 즉, 함수 정의 내에 같은 이름의함수가 올 때 이를 재귀함수라 한다. 재귀함수 사용 시 반드시 탈출 조건이 있어야 stack overflow를 방지할 수 있다. 재귀함수의 호출 및 리턴 과정 모든 함수는 호출되면 메모리에 새로운 공간을 확보해서 매번 전혀 다른 공간에서 작업이 진행된다. 소스 코드에서는 같은 공간처럼 보이지만 실제 실행되는 코드는 전혀 다른 공간에서 이뤄진다 main... jungle재귀함수개발일지정글jungle [SW사관학교정글] WEEK01 개발일지 - Ⅲ 정렬 버블 정렬 따라서 버블 정렬은 O(N^2)의 복잡도를 갖는 정렬 알고리즘이다. 선택 정렬 선택 정렬은 정렬되어 있지 않은 데이터 중 가장 작은 데이터를 선택하여 맨 앞부터 순서대로 정렬해 나아가는 알고리즘이다. 선택 정렬은 루프문을 통해 모든 인덱스에 접근해야 하기 때문에 기본적으로 O(N) 시간을 소모하며, 최소값을 찾으면 현재 인덱스와 최소값을 서로 swap해야 하기 떄문에 O(N)... jungle정렬개발일지정글jungle [Today I Learned 01] 1. input()과 sys.stdin.readline() input() 함수로 사용자가 어떤 값을 입력하게 하고, 그 값을 변수에 저장할 수 있습니다. 반복문으로 여러줄을 입력 받아야 할 때는 input()으로 입력 받는 다면 시간초과가 발생할 수 있다. 그 때 sys.stdin.readline()을 사용해야 시간초과가 발생하지 않습니다. - 한 개를 입력받을 때 ❗참고 sys.stdin.readline()은 한줄 단위로 입력받기 때문에, 개행문자... jungleTILTIL [Today I Learned 01] 2. 리스트(List) 리스트 사용법 위와 같이 사용하면 1, 2, 3, 4, 5 숫자 모음을 생성할 수 있습니다. 리스트의 인덱싱과 슬라이싱 리스트의 인덱싱 위의 예를 보면 a[0]를 작성하면 a의 첫 번째 요솟 값을 구할 수 있습니다. 리스트의 슬라이싱 문자열과 마찬가지로 리스트에서도 슬라이싱 기법을 적용할 수 있습니다. 위의 예를 보면 a[시작 인덱스, 끝 인덱스]를 작성하면 시작 인덱스 부터 끝 인덱스 직전... 기초문법jungleTILTIL
[Today I Learned 07] 1. 트리 순회 1. 이진 검색 트리란? 부모 노드에 왼쪽과 오른쪽 자식 노드를 가지는 트리이다. 즉, 부모 노드는 자식 노드를 두 개만 갖는 트리를 말한다. 전위 순회는 Root-Left-Right 순으로 순회한다. 중위 순회는 Left-Root-Right 순으로 순회한다. 후위 순회는 Left-Right-Root 순으로 순회한다. 위와 같은 이진 트리가 있을 때 전위 순회는 루트, 왼쪽, 오른쪽 즉, 3... jungleTILTIL [SW사관학교정글] WEEK01 개발일지 - Ⅴ 수학 순열이란 몇 개를 골라 순서를 고려해 나열한 경우의 수를 말한다. 즉, 서로 다른 n개 중 r개를 골라 순서를 정해 나열하는 가짓수이며 순열이라는 의미의 영어 ‘Permutation’의 첫 글자 P를 따서 nPr로 표시한다. 순열은 순서를 고려하기 때문에 [A, B, C]의 리스트에서 2개의 원소를 골라 순서를 정해 나열하면 [(A, B), (A, C), (B, A), (B, C), (... jungle수학개발일지정글jungle [Today I Learned 07] 2. 백준(#2263) 트리 순회에 대해 공부하던 도중 중위 순회와 후위 순회의 값을 주고 전위 순회로 바꾸는 문제를 마주 했다. 트리 순회에 대해서 다 이해했다고 생각했는데 막상 문제를 마주하니깐 어떻게 풀어야 될지 감이 잡히지 않았다. 그래서 답을 보고 이해한 대로 작성해보려고 한다. 문제 n개의 정점을 갖는 이진 트리의 정점에 1부터 n까지의 번호가 중복 없이 매겨져 있다. 이와 같은 이진 트리의 인오더와 포... jungleTILTIL [SW사관학교정글] WEEK01 개발일지 - Ⅱ 재귀함수 즉, 함수 정의 내에 같은 이름의함수가 올 때 이를 재귀함수라 한다. 재귀함수 사용 시 반드시 탈출 조건이 있어야 stack overflow를 방지할 수 있다. 재귀함수의 호출 및 리턴 과정 모든 함수는 호출되면 메모리에 새로운 공간을 확보해서 매번 전혀 다른 공간에서 작업이 진행된다. 소스 코드에서는 같은 공간처럼 보이지만 실제 실행되는 코드는 전혀 다른 공간에서 이뤄진다 main... jungle재귀함수개발일지정글jungle [SW사관학교정글] WEEK01 개발일지 - Ⅲ 정렬 버블 정렬 따라서 버블 정렬은 O(N^2)의 복잡도를 갖는 정렬 알고리즘이다. 선택 정렬 선택 정렬은 정렬되어 있지 않은 데이터 중 가장 작은 데이터를 선택하여 맨 앞부터 순서대로 정렬해 나아가는 알고리즘이다. 선택 정렬은 루프문을 통해 모든 인덱스에 접근해야 하기 때문에 기본적으로 O(N) 시간을 소모하며, 최소값을 찾으면 현재 인덱스와 최소값을 서로 swap해야 하기 떄문에 O(N)... jungle정렬개발일지정글jungle [Today I Learned 01] 1. input()과 sys.stdin.readline() input() 함수로 사용자가 어떤 값을 입력하게 하고, 그 값을 변수에 저장할 수 있습니다. 반복문으로 여러줄을 입력 받아야 할 때는 input()으로 입력 받는 다면 시간초과가 발생할 수 있다. 그 때 sys.stdin.readline()을 사용해야 시간초과가 발생하지 않습니다. - 한 개를 입력받을 때 ❗참고 sys.stdin.readline()은 한줄 단위로 입력받기 때문에, 개행문자... jungleTILTIL [Today I Learned 01] 2. 리스트(List) 리스트 사용법 위와 같이 사용하면 1, 2, 3, 4, 5 숫자 모음을 생성할 수 있습니다. 리스트의 인덱싱과 슬라이싱 리스트의 인덱싱 위의 예를 보면 a[0]를 작성하면 a의 첫 번째 요솟 값을 구할 수 있습니다. 리스트의 슬라이싱 문자열과 마찬가지로 리스트에서도 슬라이싱 기법을 적용할 수 있습니다. 위의 예를 보면 a[시작 인덱스, 끝 인덱스]를 작성하면 시작 인덱스 부터 끝 인덱스 직전... 기초문법jungleTILTIL