본문 바로가기

C++

(113)
[백준 13164번] 행복 유치원 link : https://www.acmicpc.net/problem/13164행복 유치원 성공시간 제한메모리 제한제출정답맞은 사람정답 비율1 초512 MB37623718163.066%문제행복 유치원 원장인 태양이는 어느 날 N명의 원생들을 키 순서대로 일렬로 줄 세우고, 총 K개의 조로 나누려고 한다. 각 조에는 원생이 적어도 한 명 있어야 하며, 같은 조에 속한 원생들은 서로 인접해 있어야 한다. 조별로 인원수가 같을 필요는 없다.이렇게 나뉘어진 조들은 각자 단체 티셔츠를 맞추려고 한다. 조마다 티셔츠를 맞추는 비용은 조에서 가장 키가 큰 원생과 가장 키가 작은 원생의 키 차이만큼 든다. 최대한 비용을 아끼고 싶어 하는 태양이는 K개의 조에 대해 티셔츠 만드는 비용의 합을 최소로 하고 싶어한다. 태양..
OpenGL-Tutorial 18 : Billboards link : http://www.opengl-tutorial.org/kr/intermediate-tutorials/billboards-particles/billboards/ 이번 튜토리얼은 한글로 번역이 되어있다! 개꿀~~~ Billboards 빌보드는 3D공간에서 표현되는 2D 요소다. 화면 내 모든 것을 가리는 2D 메뉴 같은 것도 아니고, 회전시키는 3D 평면도 아니다. 대부분의 게임에서 체력바를 표시할 때 사용하는 것이라고 생각하면 된다. 빌보드가 다른 요소들과 다른 점은 공간에서 위치를 가지되 회전은 자동으로 계산되어 항상 카메라를 바라보게 만든다는 점이다. Solution #1 : 2D 방식 이 방법은 매우 쉽다. 단순히 화면 내 위치를 계산하고, 이 위치에 2D 텍스트를 표시한다. (튜토리얼..
그리디 알고리즘(Greedy Algorithm) 1. 개념 그리디 알고리즘이란 "매 선택에서 당장의 최적 답을 선택해 적합한 결과를 도출하는" 알고리즘이다. 단, 그리디 알고리즘을 사용하면 매 선택이 그 순간에는 최적이지만 그것을 종합적으로 봤을때에는 최적이라는 보장은 절대 없다는 것을 명심해야 한다. 2. 적용 그리디 알고리즘은 한 번의 선택이 다음 선택에는 전혀 무관해야하며, 매 순간 최적해가 문제의 답인 경우에 사용한다. 3. 추가 그리디 알고리즘은 동적 프로그래밍이 너무 많은 일을 하기 때문에 그를 도와주기 위해 착안된 알고리즘이다. 동적 프로그래밍을 대체하는 것이 아니고 보완하는 개념이다. [예제 : http://gyutts.tistory.com/53]
OpenGL-Tutorial 17 : Rotations link : http://www.opengl-tutorial.org/kr/intermediate-tutorials/tutorial-17-quaternions/ 이 튜토리얼은 OpenGL의 범위를 벗어나지만 매우 일반적인 문제, 즉 회전을 표현하는 방법을 다룬다. Tutorial 3 - Matrices에서 행렬은 특정 축을 중심으로 점을 회전시킬 수 있음을 알게 되었다. 행렬은 정점을 변환하는 깔끔한 방법이지만 매트릭스 처리는 어렵다. 예를 들어 최종 행렬에서 회전 축을 가져 오는 것은 매우 까다롭다. 회전을 표현하는 가장 일반적인 두 가지 방법, 즉 오일러 각도와 쿼터니언을 제시한다. 가장 중요한 것은 Quaternions를 사용해야하는 이유를 설명할 것이다. Foreword: rotation VS or..
[1]. 렌더링 - 01 직선 그라데이션 보호되어 있는 글입니다.
OpenGL-Tutorial 16 : Shadow mapping link : http://www.opengl-tutorial.org/kr/intermediate-tutorials/tutorial-16-shadow-mapping/ Tutorial 15에서는 정적 조명을 포함하는 라이트 맵을 만드는 법을 배웠다. 매우 멋진 그림자를 생성하지만 애니메이션 모델은 처리하지 않는다. 그림자 맵은 현재 (2016년 기준) 동적 그림자를 만드는 방법이다. 그들에 대한 좋은 점은 일하기가 상당히 쉽다는 것이다. 나쁜 점은 제대로 작동하기가 대단히 어렵다는 것이다. 이 튜토리얼에서는 먼저 기본 알고리즘을 소개하고, 단점을 확인한 다음 더 나은 결과를 얻기 위해 몇가지 기술을 구현한다. Basic shadowmap 기본 그림자 맵 알고리즘은 두 단계로 구성된다. 먼저, 장면은 빛의 관..
OpenGL-Tutorial 15 : Lightmaps link : http://www.opengl-tutorial.org/kr/intermediate-tutorials/tutorial-15-lightmaps/ 이것은 비디오 전용 자습서이다. 새로운 OpenGL 관련 기술 / 구문을 소개하지는 않지만, 이미 알고있는 기술을 사용해 고품질의 그림자를 만드는 방법을 보여준다. 이 튜토리얼은 블렌더에서 간단한 세계를 만드는 방법과 라이트 맵을 베이크해 어플리케이션에서 사용할 수 있게 해준다. Blender에 대한 사전지식이 필요하지 않다. 나는 모든 키보드 단축키와 모든 것을 설명할 것이다. A note on lightmaps 라이트 맵은 구워진다. 딱 한 번만. 이것은 완전히 정적이라는 것을 의미한다. 런타임 중에는 라이트를 이동할 수 없다. 혹은 제거해야한다...
OpenGL-Tutorial 14 : Render To Texture link : http://www.opengl-tutorial.org/kr/intermediate-tutorials/tutorial-14-render-to-texture/ Render-To-Texture는 다양한 효과를 만드는 몇 가지 방법입니다. 기본 아이디어는 평상시처럼 장면을 렌더링하는 것이지만 이번에는 나중에 다시 사용할 수 있는 질감으로 렌더링하는 것입니다. 게임 속의 카메라, post-processing, 당신이 상상할 수 있을만큼 많은 GFX 등의 응용프로그램이 있다. Render To Texture 세 가지 작업이 있습니다 1) 렌더링 할 텍스처 만들기2) 실제로 무언가를 렌더링하기3) 생성된 텍스처를 사용하기 Creating the Render Target 우리가 렌더링하려고 하는 것은 F..