728x90
반응형

수학 15

백준, BOJ, 2492번, 보석C++ [CPP] ★★★★

음.. 나올법한 문제지만.. 바로 생각나지 않았다. 이건 두고두고 볼만하긴 한 문제라고 생각한다. 어려웠다. https://www.acmicpc.net/problem/2492 다음에 한 번 더 풀어야 겠다. #맞은 풀이 #include using namespace std; int N,M,T,K; int main(){ cin >> N >> M >> T >> K; vector jewel; for(int i = 0; i> x >> y; jewel.push_back({x,y}); } int ansX,ansY; int ans = 0; //최적 사각형을 만드는 방법은 테두리에 보석이 포함될 때다. //즉, 사각형을 만들었을 때 보석이 변 위에 존재해야 한다. //(x1,y1) (x2,y2) 라는 보석이 있을 때, ..

백준, BOJ, 11497번, 통나무 건너뛰기 C++ [CPP] ★★★

사실 그냥 이렇게 배치하면 무조건 최소로 될 것이다.라는 감이와서 한 것인데.. 은근히 시간 오래걸렸다. https://www.acmicpc.net/problem/11497 #맞은 풀이 #include using namespace std; //이웃하는 통나무의 최대 차이가 가장 적게 나는 배치 순서 // | x1 - x2 | 가 가장 작아야 한다. => 원형으로 배치되어있음 //통나무 개수는 10000개까지임 // 5개가 있다고 할 때 아래처럼 배치해야함. 즉, 첫번째를 중심으로 양쪽에 작은것부터 넣는다. // 1 // 2 3 // 4 5 //덱을 이용하겠다. int main(){ int test; cin >> test; while(test--){ int num; cin >> num; vector log..

알고리즘 문제풀이 - 수학 자주 나오는 개념 총정리

많은 수학 문제들이 있지만 가장 자주 나오는 문제부터 살펴보고 나머지는 교양으로 알아보자 나머지 나머지는 특히 답에 xxx로 나눈 나머지를 구하시오와 같은 문제로 많이 나오는데 이건 범위를 제한하기 위해서다. 즉, 기본 자료형의 범위를 초과한다고 생각하면 이런 문제가 나온다. 나머지에는 특징이 있는데 덧셈, 곱셈, 뺄셈은 이 법칙이 적용이 되고 나눗셈은 안된다. 1. 합을 나눈 것은 각자의 나머지의 합의 나머지를 구하는 것과 같다 2. 곱을 나눈 것은 각자의 나머지를 곱해서 나머지를 구하는 것과 같다. 3. 뺄셈을 나눈 것은 각자의 나머지를 뺀 것의 나머지를 구하는 것과 같다. **다만 뺄셈은 음수가 나올 수 있기 때문에 M을 한 번 더해준다. 마치 분배법칙을 이용한 것과 같다. 하지만 조금 다르다. 분..

백준, BOJ, 1011번, Fly me to the Alpha Centauri : C++ [CPP]

어렵다기보다.. 수학으로 풀면 규칙 찾아내는 것이지만 다이나믹 프로그래밍 분류에 있어서 뭐 그렇게 풀려고 했으나..내 머리가 모자라서.. https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 우선 다이나믹프로그래밍으로 풀려고하는 방법은 큰 문제를 작은 문제로 쪼개는 것이다. 때문에 x부터 y라면 x 부터 y-1까지 가는 방법에서 y-1에 2로 도착하는 방법과 y-1에 1로 도착하는 방법이 있으니 이것을 잘..

게임 물리 - 2가지 이상의 힘이 작용할 때

우리가 등속 직선운동을 배우고 나서 배우는 것이 있는데 바로 포물선 운동이다. 각 축 간의 운동이 다를 때이다. 수평으로는 등속직선운동이 수직으로는 등가속도운동이 2가지가 합쳐져 포물선 운동이 만들어진다. 실제로 x축 따로 y축 따로 움직이는 것은 아니지만 2가지로 나누어 볼 수 있다는 말이다. 사실 중력가속도를 직접 유도가능한데... 그것은 공학자에게는 사치이기에 유명한 중력가속도 상수인 9.8m/s2 이나 또는 그냥 g로 바꾸어서 쓰도록 하자. 사실 앞서 배운 등속운동에 대해서는 거리 = 시간 * 속력이 된다. 하지만 속도가 변하는 운동에서는 위의 공식이 통하지 않는다. 이를 우리는 적분을 이용하여 순간 속력 * 순간 시간을 더해서 이동 거리를 구한다. 중력과 같이 가속도가 정해져있는 등가속도에서는 ..

게임 물리 - 등속 직선 운동

물리를 고등학교에서 처음 접했다면 솔직히 생각은 안나지만 가장 처음 접한 운동이 등속 직선이 아닌가 싶다. 등속 직선 운동이란 일정한 속도로 직선으로 이동을 한다고 생각하면 된다. 여기서 핵심은 속도가 변하지 않는다는 것이다. 운동 중에 운동 방향 속력이 바뀌지 않는 다는 것이다. ** 등속도 운동과 같다. (속도는 속력+ 방향이라 배웠다면) 우리는 일반적으로 속력, 거리, 시간으로 나누어서 관찰한다. 위의 그래프를 보면서 시간을 기준으로 나머지 것들을 한 번 살펴보자. 게임에서의 모든 이동은 아니지만 일반적으로 FPS를 보았을 때 내가 가장 먼저 접한 FPS가 서든 어택이다. W를 누르면 앞으로 이동 S를 누르면 뒤로 이동 A,S를 누르면 좌우 이동이 되었다. 또한 좌우로 눌렀을 때는 제자리 이동이 되..

백준, BOJ, 1676번 C++ [CPP]

10^승의 개수가 0의 개수란 것을 안다면 쉽다. 다만 숫자가 크기에..잘해봐야한다. 더군다나 시간제한도 있다 https://www.acmicpc.net/problem/1676 #맞는 풀이 #include using namespace std; //0의 개수는 소인수분해 시 2와 5의 개수에 따라 결정된다. //즉, 모든 숫자에 대해서 2,5의 개수파악, 근데 2의 개수가 압도적으로 많으므로 5의 개수만 파악하면 알아서 되겠다. int dp[501]; int main(){ int N; cin >> N; for(int i = 1; i

아핀 공간, Affine Space - 2 [게임수학]

저번 시간에는 선을 배웠으니 이제 면을 배워볼 시간이다. 선을 만들 때 두 점의 아핀 조합을 통해 만들었다. 면을 만들 때는 세 점의 아핀 조합을 통해서 만든다. 알아보자 면도 매개변수 방정식으로 표현될 것 같다는 느낌이 든다. 맞다. 한 평면에 점 3개 A, B, C가 있다면 저렇게 표현할 수 있다. 어디서 많이 봤다. 평면의 방정식에서 본거 같은데? 점과 점의 뺄셈 계산으로 벡터를 만들어서 점 하나와 2개의 벡터 계산으로 바꿀 수 있다. ++3차원 공간에서 선을 표현할 때는 매개변수 방정식으로 많이 표현하지만 ++3차원 공간에서 면을 표현할 때는 매개변수 방정식도 괜찮지만 일반화해서 나타낼 수 있다. -> 3D 게임에서 평면을 다룰 땐 매개변수보다 일반화 방정식이 더 이해하기 편함. 뒤에 이유 나옴 ..

아핀 공간, Affine Space [게임수학]

행렬, 벡터, 선형변환에 대해 공부해봤다. 행렬과 벡터는 바꿔서 표현이 가능하고 선형변환해도 성질은 유지된다. 그렇다면 위치는 어떻게 표현해야할까? 벡터는 크기와 방향만 가지므로 정적인 위치를 표현하기에는 무리가 있다. 그래서 우리는 점,Point 을 쓴다. 어떠한 위치를 표현할 때 좌표로 그 해당 지점을 말한다. 우리가 점을 찍는다고 말할 수 있는 공간을 아핀 공간이라고 한다. 알아보자 아핀 공간이라는 말이 익숙치가 않다. 일반적으로 유클리드 공간은 아핀 공간이지만 벡터 공간이라고도 한다. 아핀 공간의 정의 자체가 벡터공간을 필요로하기 때문이다. 아핀 공간으로 벡터 공간을 형성할 수 있다고 알고 이해해보면 되겠다. 일반적으로 직교좌표계에서 점은 원점으로부터 각 축에 대해서 얼만큼 떨어져 있는가로 표현된..

728x90
반응형