게임수학) 삼각함수 - 1
·
Programming/기타
삼각형은 컴퓨터 그래픽스의 가장 기본적인 도형중 하나이다.3D그래픽의 가장 작은 단위인 폴리곤만 해도 삼각형으로 이루어져 있다는 것을 알 수 있다. 삼각형은 세 개의 정점으로 이루어진다. 이 세 개의 정점 중 두 개의 정점을 잇는 선분을 변이라고 한다.이 삼각형의 세 변중 두 개의 변이 이루는 각을 내각이라고 한다.또한 삼각형의 세 내각의 합은 항상 180도 이다. 삼각형은 그 모양에 따라 다양한 이름을 가지고 있지만, 우리가 삼각함수에서 다루고자 하는 삼각형은 직각삼각형이다.직각삼각형은 세 개의 정점 부분의 내각 중 하나가 직각을 이루는 삼각형을 말한다. 정점 C부분의 내각이 바로 직각이다.또한 맞은편의 비스듬한 변 h를 빗변이라 하고, 바닥 b를 밑변, 마지막 a변을 높이라고 한다. 삼각함수란 직각삼..
BOJ - 골뱅이 찍기 23805
·
코딩테스트
해결방법가로 세로 각 5개의 셀은 총 25개의 셀이고, 좌우로는 a~e, 상하로 1~5라고 했을 때, d1~d4, b2~b5를 공백 처리하면 된다. 정답 코드#include using namespace std;void Cell(int N){ for (int i = 0; i > N; for (int row = 0; row = 0 && cellRow = 1 && cellRow
1.1 + 0.1 == 1.2가 false인 이유
·
Programming/C C# C++
요약 : 10->2진법 변환 한계로 소수 표현이 제대로 안되어서 연산 후 결과를 비트연산하게되면 다른값이 나올 수 있다. 가끔 소수점 단위 연산을 해야하는 경우가 있다. 예를 들어 0.1초마다 주위를 스캔한다던지, 무게를 0.25초마다 측정한다던지 하는 경우 말이다. 이런 경우 특별한 조치를 취해주지 않는다면 오류가 발생할 가능성이 있다. 예를 들어 이 사진의 경우 1.1 + 0.1이 1.2와 동일한지를 계산하는 코드이다. 상식대로라면 동일하다는 결과가 나와야 하지만 결과는 보다시피 거짓이 나오게 된다.어디가 문제일까?컴퓨터는 숫자를 저장할 때 바이트 단위로 수를 집어넣는다. 실수를 저장할때는 주로 float, double을 사용하는데, float는 4바이트, double은 8바이트라는 차이점이 있을 뿐..
C#) 문자열 입력 시 변수를 추가하는 방법
·
Programming/C C# C++
C#에서 작업을 할 때 String 함수를 사용하는 경우가 있다. 이때 문자열에 변수를 같이 사용하는 경우 입력하는 방식은 크게 세 가지 정도로 나뉜다. string name = "Alice";string greeting = "안녕하세요, " + name + "님!";Console.WriteLine(greeting);  이런 식으로 + 기호를 사용하여 문자열에 변수를 직접적으로 붙이는 방법이 있고, string name = "Alice";string greeting = $"안녕하세요, {name}님!";Console.WriteLine(greeting); $의 문자열 보간을 이용하여 문자열을 만드는 방식이 있고, string name = "Alice";string greeting = string.Forma..
BOJ - 추첨을 통해 커피를 받자 21866
·
코딩테스트
해결방법각 문제별로 배점이 있으므로, 정수를 입력받을 때 이 배점을 넘는 경우가 발생한다면 해커가 된다.정수를 입력받고, 전부 더한 값이 100을 넘는다면 draw가 된다.이 외에는 none이다. 정답 코드#include using namespace std;int main(){ int arr[9]; int max[9] = { 100, 100, 200, 200, 300, 300, 400, 400, 500 }; int total = 0; bool hacker = false; for (int i = 0; i > arr[i]; if (arr[i] > max[i]) { hacker = true; } total += a..
BOJ - 거북이 2959
·
코딩테스트
해결방법배열로 4개의 수를 입력받고, Sort함수를 통해 정렬을 한다. 가장 큰 직사각형은 주어진 수중 2번째로 큰 수와 가장 작은 수를 곱하면 나오게 된다. 정답 코드#include #include using namespace std;int main(){ int arr[4]; for (int i = 0; i > arr[i]; } sort(arr, arr + 4); int max = arr[0] * arr[2]; cout