BOJ - 수 정렬하기 2 2751
·
코딩테스트
해결방법일반적인 Cin과 Cout을 사용하면 제한시간을 초과한다고 뜨게 된다.해결책은 ios::sync_with_stdio(false);와 cin.tie(NULL);를 통해 출력 속도를 향상시키는 것이다. ios::sync_with_stdio(false);는 C와 C++ 표준 stream의 동기화를 비활성화시켜 입출력 속도를 향상시킨다.cin.tie(NULL);는 기존의 cin과 cout을 묶어주는 과정을 수행하지 않게 만들어 입출력 속도를 향상시킨다. 마지막으로 \n'을 사용하면 endl보다 더 빠르게 처리가 가능하다. 정답 코드#include #include #include using namespace std;int main(){ ios::sync_with_stdio(false); cin...
C#) C#에서의 배열 사용 방법
·
Programming/C C# C++
C#에서는 배열을 선언할 때 기존에 C와 C++에서 했던 방법과는 달리 자료형 바로 뒤에 대괄호를 붙이게 된다.int[] type;이런 식으로 말이다. 만약 2차원 배열이나 그 이상의 배열을 필요로 한다면,int[,] types;이런 식으로 콤마를 입력해서 차원 수를 늘릴 수 있다. 이 배열에 값을 할당하는것은 일반적으로 배열에 값을 할당하는 것처럼 선언과 동시에 초기화하면 되지만, 이미 선언된 배열에 값을 할당하는 경우 new 키워드를 사용하여 대입해야 한다. string[] languages;languages = new string[] {"C#", "C++"}; //문자 자체를 대입하는 방식languages = new string[9]; //배열의 개수만 대입하는 방식 그 외 사용법은 기존의 방식과 ..
게임수학) 좌표계 - 2
·
Programming/기타
극좌표계이전 포스트에서 설명했었던 좌표계는 직교좌표계라고 하는 좌표계였다. 이 직교 좌표계와 다른 방식으로 물체의 위치를 표현하는 좌표계도 존재하는데, 그중 대표적인 극좌표계에 대해서 설명해보겠다. 극좌표계는 크게 2D와 3D로 구분할수 있다. 먼저 2D좌표계를 한번 알아보자.  마치 단위원처럼 생겼다는 것을 알 수 있다. 2D 극좌표계에도 직교좌표계처럼 중심에 극(Pole)이라고 불리는 기준점이 존재한다. 이 극에서 반지름처럼 극축이라고 불리는 반직선이 뻗어나오게 된다. 이 극좌표계에서 평면상의 점 P의 위치를 결정하는 방법은 극축과 P를 연결하는 직선 r의 길이와 극축과 r의 각도 θ를 통해 결정된다. 즉, 점 P의 극좌표는 (r, θ)가 된다는 것이다. 이 극좌표계라는 것은 보통 항공기나 선박의 네..
BOJ - 불안정한 수열 28323
·
코딩테스트
해결방법결국, 불안정한 수열 중 가장 큰 케이스를 구하면 되는 것인데, 인접한 두 수를 더해서 홀수가 나오려면, 홀수 + 짝수의 경우밖에 없다.즉, 홀짝홀짝순으로 배치된 경우를 찾아서 그 길이를 재면 되는 것이다.예를 들어 5짜리 배열에 3 1 4 1 5로 입력되었다면, 홀짝홀짝이 가장 긴 부분, 3 4 1 5를 골라서 4짜리 배열을 만들 수 있다. 정답 코드#include #include using namespace std;int main(){ int N; cin >> N; vector A(N); for (int i = 0; i > A[i]; } int max = 1; int prev = A[0] % 2; for (int i = 1; i
BOJ - 약수 1037
·
코딩테스트
해결방법약수를 가지고 어떤 수를 구하는 방법은 주어진 수중 1을 제외한 가장 작은 수와 가장 큰 수를 곱한 값을 구하면 된다.문제에서는 1이 없기 때문에 바로 하면 된다. 정답 코드#include #include #include using namespace std;int main(){ int N; cin >> N; vector Arr(N); for (int i = 0; i > Arr[i]; } int Small = *min_element(Arr.begin(), Arr.end()); int Big = *max_element(Arr.begin(), Arr.end()); int result = Small * Big; cout
C#) 캐스팅, 박싱, 언박싱
·
Programming/C C# C++
캐스팅캐스팅이란 변수의 자료형을 다른 자료형으로 변환하는 연산을 말한다.이 캐스팅에는 암시적 캐스팅과 명시적 캐스팅의 두 종류로 나뉘는데, 전자의 경우 단위가 작은 자료형에서 단위가 큰 자료형으로 캐스팅 하는경우 (float에서 double형으로 캐스팅 등등)가 있다.short a = 20;int b = a;이런 형식으로 말이다. 명시적 캐스팅의 경우 자료형의 형태가 다르거나 더 큰 자료형에서 작은 단위의 자료형으로 형 변환하는 경우 주로 사용한다.double a = 3.14;float b = (float) a;float c = 2.17;int d = (int) c;두 경우 모두 명시적 캐스팅이지만, 조금의 차이가 존재한다.전자의 경우 큰 단위(8바이트)에서 작은 단위(4바이트)로 자료형이 작아지기 때문..