컴파일러
·
Programming/기타
컴파일러컴파일러란?컴파일이란 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어 혹은 컴퓨터 언어로 옮기는 과정을 의미한다. 이러한 컴파일링을 자동으로 수행해주는 소프트웨어 혹은 장치를 컴파일러라고 한다. 컴파일링 과정은 4단계로 이루어진다.1. 전처리 과정 (Pre-processor)2. 컴파일 과정3. 어셈블리 과정4. 링킹 과정 전처리전처리 과정이란 우리가 만든 코드들 중 헤더파일이나 매크로와 같은 부분들을 소스코드로 변환해주는 사전 작업이다.이 과정에서 쓸모없는 부분들을 제거하여 최적화 또한 수행한다.주석을 제거하고, 헤더파일 내부의 코드를 삽입하고, 상단의 매크로를 실제 코드로 치환하고 적용해주는 과정을 수행한다. 컴파일그 다음 컴파일 과정에서 고급 언어 (대표적으로, C++)를 저급..
BOJ - 자작나무가 없소~ 31496
·
코딩테스트
해결방법입력되는 단어에서 특정 단어(예 : stone)가 포함되어 있는지를 파악해야 한다. 이 특정 단어는 _로 구분되어 있다면 해당하는 단어이지만(stone_axe 등등), 어떤 단어에 포함되는 경우에는 해당하지 않는다(flintstone 등등). 두번째 줄부터 아이템의 이름과 수량이 입력되는데, 이때 입력되는 문자열을 StringStream을 이용하여 입력 스트림처럼 변환해주었다.그다음으로 활용하는 것은 getline 메서드인데, 코드를 보면 ss, 즉 우리가 입력받은 아이템의 스트림을 word에 저장하는데, _가 나올때까지 읽어들인다는 의미이다.즉, stone이 우리가 찾는 이름이고, star_shape_stained_stone이 입력받은 단어라면, star, shape, stained, stone..
BOJ - 행렬 곱셈 2740
·
코딩테스트
해결방법먼저 동적으로 이차원 배열을 입력받아야 하기 때문에 이차원 벡터를 선언해줘야 한다.행렬을 입력받는것은 쉬우니 생략한다.행렬 곱을 하는 과정은 다음과 같다. 첫번째 행렬의 첫 번째 행의 숫자를 두번 째 행렬의 첫번째 열의 모든 숫자들과 곱하고 그 값을 더해준다. 행렬은 다음처럼 계산이 진행된다.따라서 우리가 해줘야 할 것은 행렬 곱의 크기인 N*K 사이즈의 배열을 만들고, 위의 그림처럼 각 배열마다 하나씩 연산을 더해주는 부분이다. 정답 코드#include #include using namespace std;int main(){ int N, M; cin >> N >> M; vector> A(N, vector(M)); for (int i = 0; i > A[i][j]; } } int C, K; ci..
BOJ - 연도 진행바 1340
·
코딩테스트
해결방법먼저 monthDay 배열을 보면, 각 월의 날수를 배열로 저장했음을 알 수 있다.나중에 map을 통해 월을 입력받으면 그 월을 숫자로 변환하여 monthDay의 숫자를 사용하는 방식으로 활용한다. YearPassed 함수는 윤년을 확인하는 함수로, 연도를 4로 나눠서 0이거나 100으로 나눠서 0은 아닌데 400으로는 0이 된다면 윤년이 되는 방식이다. monthLeft 함수는 입력된 월 이전까지의 누적일수를 구하는 함수이다. 예를 들어 May가 입력되었다면 4월까지의 일수를 구하게 된다. 여기에 만약 윤년인 경우 1일을 추가하는 방식으로 계산한다. 나머지 입력을 받는 부분과 진행도를 계산하는 것은 매우 간단하니 넘어가도록 하겠다. 정답 코드#include #include #include #in..
C#) 메서드와 매개변수
·
Programming/C C# C++
이번에 알아볼 것은 바로 메서드이다. C#에서는 메서드라 부르고 C/C++에서는 함수라고도 하는데, 특정한 동작을 수행하거나 특정 결과를 계산하는 일련의 구문 순서를 묶는 수단이다. 우리는 이 메서드들의 이름을 호출하여 사용할 수 있다.using UnityEngine;public class Test1 : MonoBehaviour{ public void Start() { int a = 10, b = 20; Debug.Log(Add(a, b)); } public int Add(int a, int b) { int c = a + b; return c; }}...이런 식으로 말이다. 이 경우 Add라고 하는 메서드를 Start메서드..
게임수학) 행렬 - 1
·
Programming/기타
행렬의 정의행렬은 수나 기호를 직사각형 형태로 배열한 것으로, 여러 분야에서 사용되지만 게임 엔진에서는 주로 벡터 공간의 변환을 위해 사용된다.  보통 이런식으로 작성된다.이 행렬 안에 나열된 성분들은 요소라고 부르고 m11, m23처럼 나타낼 수 있다. 행과 열의 수가 동일한 행렬을 정사각행렬이라고 부른다. 게임 엔진에서는 주로 이 정사각행렬을 많이 사용한다.만약 행번호와 열번호가 동일한 성분, 예를 들어 m11, m22, m33같은 요소를 대각요소라고 한다. 한번 행렬의 종류에 대해서 한번 알아보자.정사각행렬이면서 대각 요소외의 요소가 모두 0이라면 그때는 그 행렬을 대각행렬이라고 할 수 있다.만약 대각행렬이면서 대각요소가 모두 1이라면? 단위행렬이 된다. 만약 모든 요소가 0이라면? 영행렬이 된다...