일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- homogeneous linear system
- 코틀린 시작하기
- Big-Oh 예제
- Big Omega
- NumPy
- recursive algorithms
- nontrivial solution
- 빅오메가
- 재귀함수
- 배열 섞기
- python
- Big Theta
- 랜덤 순서 배열
- itertools
- nonhomogeneous linear system
- 이진 탐색
- Big-Oh notation
- 일차변환
- matrix fo a linear transformation
- 알고리즘 분석의 실례
- 코틀린 Hello World!
- one-to-one
- 빅세타
- Big-O 예제
- 빅오 표기법
- linear dependence
- solutions of matrix equation
- trivial solution
- matrix-vector product
- matrix trnasformations
- Today
- Total
코딩 연습
\(1, 2, 3, 4, 5\) 를 나열하는 순열의 수는 \(5!=120\) 가지로 금방 계산할 수 있지만, 실제로 \(120\) 를 나열하는 것은 사람이 하기 힘든 일이다. 컴퓨터로 하면 금방 될거라고 생각했는데, 생각만큼 쉽지는 않았다. 이런 저런 방법들을 생각해 보다가 결국 함수를 재귀적으로 사용하는 방법으로 결정을 했는데, 나열해야 하는 숫자가 많아질수록 시간이 좀 많이 걸리는 것 같다. 그래도 지금 수준에서 찾아낼 수있는 최선의 방법인거 같아 기록을 남긴다.새로운 방법을 배우고야 말았다. 그래서 두 가지 방법을 모두 소개하기로 한다. 1. 재귀함수를 이용하는 방법 기본적인 아이디어는 간단한다. 1 한 개를 나열하는 방법은 당연히 (1) 한 가지다. 1, 2 두 개를 나열하는 방법은 맨 앞자리가 ..
체스에서 여왕(queen) 은 가로, 세로, 대각선으로 움직이며 상대를 공격할 수 있다. N-queens 문제는 $N \times N$ 크기의 체스판에 $N$ 개의 여왕을 서로 서로 공격하지 못하도록 배치하는 법을 찾아내는 문제이다. 예를 들어, $N=4$ 일 때는 다음과 같이 $4$ 개의 여왕을 배치하면 된다. 즉, 어떤 두 개의 여왕도 같은 행, 같은 열, 같은 대각선 상에 놓이지 않도록 $N$ 개의 여왕을 배치하는 문제이다. 이 문제를 풀기 위해서는 위와 같은 배치를 표현하는 방법을 정의해야 한다. 이를 위해서 크기가 $N$ 인 배열을 만들고, 배열의 $i$ 번째 요소가 $i$ 번째 행에 놓이는 여왕의 열 위치를 나타내도록 표현하면 된다. 위의 해법을 이런 배열로 표현하면 (2, 0, 3, 1) 이..
달팽이 배열은 $n \times n$ 배열에 $1$부터 $n^2$ 까지의 자연수를 달팽이 집 모양으로 채우는 문제이다.다음 그림은 $4 \times 4$ 배열에서의 숫자를 채워 나가는 방향과 결과로 얻어지는 배열을 보여준다. 사용자로부터 배열의 크기를 결정하는 $n$ 을 입력받아 달팽이 배열을 만든 후 출력하는 프로그램을 작성하는 것이 이 문제의 목적이다. 계속 $4 \times 4$ 배열을 예로 들자면, 행과 열의 index 는 다음과 같이 주어질 것이고, 숫자들이 채워질 때는 규칙성이 있게 채워진다는 것을 알아야 한다. (0, 0) 에서 출발하여 오른쪽으로 숫자들을 4 개 채워간다. 오른쪽으로 채운다는 것은 열의 index 가 하나씩 증가하는 것을 의미한다. (0, 3) 에서 방향을 바꾸어 아래쪽으로..