게임수학) 좌표계 - 1
·
Programming/기타
2D 좌표계이번에는 좌표계에 대해서 한번 알아보자.좌표계는 물치의 위치를 하나의 점으로 가리키기 위한 체계이다.원점을 기준으로 x축과 y축으로 이루어진 좌표계를 직교 좌표계라고 한다. 다음과 같이 생겼다. 이러한 직교 좌표계를 데카르트 좌표계라고도 하는데, 데카르트가 좌표계를 도입했다고 알려져있기 때문이다. 좌표계를 보면 x축과 y축으로 4개의 공간이 분할되어있다는 것을 알 수 있는데, 이를 사분면이라고 한다.각 사분면은 오른쪽 위에서부터 반시계 방향으로 1사분면, 2사분면, 3사분면, 4사분면이라고 구분할 수 있다. 3D 좌표계이제 x축과 y축을 이용하여 2D 평면상에서의 위치를 특정할수 있게 되었다. 이제 축을 하나 더 늘려보자. 이것이 3차원 좌표계의 예시이다. 이제 우리는 x축, y축, z축을 사..
BOJ - 클레어와 팰린드롬 17502
·
코딩테스트
해결방법문제를 해결하는 핵심 아이디어는 isalpha()메서드이다. 기존에는 코드를 한번 순회하면서 '?'와 일치하는지를 찾아서 교체했는데 그 방식은 통하지 않아서 찾다가 나온 방법이다.isalpha()를 사용하면 알파벳인 경우에는 true, 아니라면 false를 반환하게 된다.즉, 대칭되는 문자열에서 알파벳인 경우에는 나머지 하나가 ?라도 동일한 알파벳을 대입해준다는 의미이다. 정답 코드#include #include using namespace std;int main(){ int N; cin >> N; vector Arr(N); for (int i = 0; i > Arr[i]; } for (int i = 0; i
C#) 값 형식과 참조 형식
·
Programming/C C# C++
C#은 데이터의 메모리 저장 방식에 따라 두 개의 타입으로 나뉘게 된다.바로 값 형식(Value Type)과 참조 형식(Reference Type)이다. 두 형식은 다음과 같은 차이점이 있다.값 형식(Value Type)참조 형식(Reference Type)변수에 값을 대입하는 데이터 형식int, double형 등등이 있다.데이터를 스택(Stack) 메모리에 할당한다.변수에 값 대신 값의 주소를 대입하는 데이터 형식대표적으로 object형이 있다.데이터를 힙(Heap) 메모리에 할당한다. 값 형식의 경우 데이터를 복사하여 저장하기 때문에, 원래 변수의 값을 두 번째 변수에 할당하면 원래 변수의 값 사본이 새로운 변수의 위치에 만들어진다. 따라서 첫 번째 변수를 변경해도 두 번째 변수의 값에는 영향을 주지..
C#) Null과 Void의 차이
·
Programming/C C# C++
Null이란 변수에 아무것도 설정되지 않았다는 것을 의미하는 상수를 말한다.예를 들어int T = Null;이런 식으로 선언을 한다면 T의 값은 아예 정의되어 있지 않다는 것을 의미한다.이 Null이라는 상수는 0과는 또 살짝 다른데, 0을 대입하게 되면 값 자체는 존재하지만 그 값이 0인 것을 의미하고, Null을 대입하면 값조차도 없다는 의미이다. Void의 경우에는 C++에서와 C#에서의 의미가 살짝씩 다르다.C++의 경우 포인터로써 사용할수 있기 때문에 메소드에서 어떤 데이터도 반환하지 않는다는 의미를 갖는데 반해,C#에서는 주로 데이터 형식을 지정해야 하지만, 실제로 반환되는 데이터가 없는 경우 사용한다. 일반적으로 주로 사용하는 void 포인터의 경우 가리키는 대상이 없는 포인터라는 의미를 가..
게임수학) 삼각함수 - 3
·
Programming/기타
덧셈정리이전 포스트에서 단위원에 대해 소개했었다.단위원을 이용하면 내각이 90도를 넘더라도 삼각함수의 수치를 구할수 있었다. 이제 이 그림을 한번 보자. 똑똑한 여러분들은 점 P를 P'의 위치로 옮기게 된다면 내각이 α+β가 되어 좌표가 cos(α+β), sin(α+β)가 된다는 것을 알 수 있을 것이다.그렇다면 이 cos(α+β), sin(α+β)는 어떻게 구할 수 있을까? 덧셈정리라는 공식을 이용하면 다음과 같이 결론이 나오게 된다.  자세한 증명에 대해서는 생략하겠다. 어차피 고등학교 수학 수준이니 나무위키만 찾아도 나올 것이다. 이 덧셈정리를 P'에 적용해보면 원래의 점 P(cosα, sinα)를 β만큼 회전한 점 P'의 위치는 다음과 같이 나오게 된다. 덧셈정리를 응용하면 반각공식, 배각공식 등..
BOJ - 나누기 1075
·
코딩테스트
해결방법끝의 두 자리를 00으로 초기화 시켜서 저장한 뒤, 00부터 99까지 하나씩 올려가면서 나누어 떨어지는 값을 찾는다.중요한 것은 문제에서 한자리인 경우 앞에 0을 추가하여 두 자리로 만들어야 한다는 조건이다.setw(2)  정답 코드#include #include using namespace std;int main(){ int N, F; cin >> N >> F; int N0 = (N / 100) * 100; int result = 0; for (int i = 0; i