개발자블로그 3

[ 개념 ] 05. N-Queens(Back Traking)

> N-Queens (Back tracking) (n = 8) 아래의 예(n=8)에서는 8x8 체스보드에 8개의 말을 놓는데 그 중에 어떤 말들도 동일한 행, 동일한 열, 동일한 대각선 상에 오지 않도록 n개의 말을 놓을 수 있는가에 대한 문제이다. 위의 방법대로 n개의 말을 놓으려면, 결국 조건을 만족하면서 하나의 행에 하나의 말이 와야한다. Back Tracking 내가 지나온 길을 다시 되돌아 가면서 문제를 해결한다 어떠한 결정들을 내려가다가, 결정이 막다른 길이다. 즉, 그 결정을 내려서는 안된다라는 것이 분명해지면, 가장 최근에 내렸던 결정을 번복한다. 이런식으로 문제를 해결한다. 상태 공간트리 1번말이 (1,1)에 위치했을 때, 그리고 그 때 2번말이 (2,1), (2,2), (2,3), (2..

[ Embedded ] 10. Bit Depth에 관하여

Bit Depth Bit Depth를 이해하기 가장 쉬운 방법은 "Bit Depth는 오디오의 음량 총량을 담는 컨테이너다"라고 생각하는 것이다. Bit Depth는 역시 헤비록, EDM이 만들어지는 홈스튜디오라면 크게 중요하지 않을 수 있다. 하지만 만약 적절한 음량에서 듣고 녹음하는 경우라면, 전체 프로덕션 과정에서 Bit Depth의 차이는 크게 느껴질 수 있을 것이다. 적절한 Gain 스테이징과 모니터링 레벨에서는 이 차이는 더욱 크게 느껴진다. Bit Depth는 Recording 하려는 음원이나 Audio File의 Line Level(0dB)부터, Noise Floor까지에 이르는 Dynamic Range의 거리를 조절해준다. Line Level은 Recording 또는 Mixing 시에 웬..

[ C ] 16. volatile 이용하기

[ volatile ] 변수를 선언할 때 앞에 volatile을 붙이면 컴파일러는 해당 변수를 최적화해서 제외하여 항상 메모리에 접근하도록 만든다. volatile int num1 = 10; // 변수를 최적화해서 항상 메모리에 접근하도록 만듦 volatile로 선언한 변수는 사용할 때 항상 메모리에 접근한다. 즉, 이 변수는 언제든지 값이 바뀔 수 있으니까 항상 메모리에 접근하라고 컴파일러에게 알려주는 것이다. 예를 들면 다음과 같은 반복문이 있다. int i = 0; while(i 컴파일러는 이 코드를 최적화하여 while 반복문을 없애버리고 i에 그냥 10을 할당해 버린다.(Visual Studio의 /02옵션, GCC의 -03옵..