알고리즘 (2) 썸네일형 리스트형 [Algorithms]N-queens (Chess Puzzle) 알고리즘, 연습 또 연습 알고리즘적 사고를 한다는건 정말 어려운 일이다. 인간은 컴퓨터와는 다르게 생각하기 때문이다. 일련의 모든 과정들을 일일이 명령하고 알려줘야만 컴퓨터는 사고할 수 있다. 이번에 다룰 알고리즘 또한 만만치 않은 퍼즐이다. 지난 세기의 대결, 이세돌과 알파고와의 대결은 엄청났다. 알파고는 어떻게 바둑을 뒀을까? 물론 딥러닝과 같은 컴퓨터 기술을 구현하는건 아니지만 체스보드를 활용해서 꽤 유명한 알고리즘 퍼즐을 풀어봤다. 우리는 체스의 규칙을 알지만 컴퓨터는 모른다. 그렇기 때문에 각각의 경우마다 어떻게 체스를 둬야할 지 하나하나 길을 알려주어야 하는 것이다. 그 중, 체스의 가장 강력한 말인 퀸을 구현해본다. 여기서 말하는 N은 체스보드의 크기이며, 어떠한 보드의 사이즈(NxN)가 오.. 자료구조의 이해 자료구조의 이해 1. 알고리즘이란? 알고리즘이란, 어떠한 문제를 해결하기 위한 여러 순차적인 동작들의 모임을 말한다. 그 문제가 해결되기 까지의 유한성을 가진 프로세스며, 의사코드(Pseudo Code)로 표현될 수 있다. 또한, 특정언어에 구속되지 않는다. 2. 왜 알고리즘은 중요한가? 프로그램의 성능에 큰 영향을 미친다. 알고리즘 설계시 다음 요소들을 고려해야 한다. 1) Time Complexity : 알고리즘을 수행하는데 걸리는 시간 2) Space Complexity : 알고리즘을 수행하는데 필요한 공간 3. 자료구조란? 데이터를 어떤 공간에 어떻게 저장할 것인지를 표현한 설계구조다. 자바스크립트의 배열(Array)과 객체(Object)는 대표적인 자료구조의 예라고 볼 수 있다. 적절한 자료구조.. 이전 1 다음