본문 바로가기

Programing

(39)
[C++] 코딩 테스트 개 문제 풀이 오늘은 개 문제를 풀어 봤다! #include using namespace std; int main(void) { cout
[C++] 코딩테스트 준비(백준, 고양이문제) 금년 상,하반기 이직을 위한 공부를 시작했다. 코딩테스트를 준비하기 위해 백준(www.acmicpc.net) 에서 문제풀이그리고 프로그래밍(C++, 자료구조등)을 공부하기 시작했다. 오늘은 코딩 문제 중 고양이문제(10171번) 문제를 풀어 보았다. 어려운건 아니고 그냥 예제 출력과 똑같이 흉내내면 된다. #include using namespace std; int main(void) { cout
[C++] Call by reference & Call by Value #출저 : 열혈 C++프로그래밍(책) Call by reference, Call by Value의 의미를 먼저 살펴보면, Call by value : 값으로 인자를 전달하는 함수의 호출 방식 Call by reference : 주소값을 인자로 전달하는 함수의 호출 방식 Call by value 기반으로 Swap 함수를 구현해보면, void SwapByValue(int num1, int num2) { int temp = num1; num1 = num2; num2 = temp; } int main() { int val1 = 10; int val2 = 20; SwapByValue(val1, val2); cout
[C++]참조자(Reference) 정의 #출저 : 열혈 C++프로그래밍(책) 변수는 할당된 공간에 붙여진 이름이다. 그리고 그 이름을 통해서 해당 메모리 공간에 접근이 가능하다. 여기서, 할당된 하나의 공간에 둘 이상의 이름을 부여하는 경우를 참조(Reference)한다 라고 말한다. int num1 = 2010; 이렇게 변수를 선언 하면 메모리 공간 상에서는, 아래 처럼 된다. 여기에서 int &num2 = num1; 를 실행하면 num1이라는 이름이 붙어 있는 메모리 공간에는 num2라는 이름이 하나 더 붙게 된다. *포인터와 헷갈리면 안된다. 포인터 의미와 구분 짓자면, int *ptr = &num1 // 변수 num1의 주소 값을 반환해서 포인터 ptr에 저장해라. int &num2 = num1 // 변수 num1에 대한 참조자 num..
C++ 자료형 bool #출저 : 열혈 C++프로그래밍(책) 자료형 bool - '참'을 의미하는 true와 '거짓을 의미하는 false를 가리켜 bool형 데이터 라고 한다. C언어에서는 정수 0은 '거짓'을 의미하는 숫자로 false, 0이 아닌 모든 정수는 '참'을 의미함. C++에서는 키워드 true, false를 정의 하고 있기 때문에 굳이 매크로 상수(1,0)을 사용할 필요는 없다. 여기서 주의 사항은 true,false가 1,0을 의미하기는 하나 이게 정수 1,0과는 다르다는 것을 주의해야 한다. #include using namespace std; int main(void) { int num = 10; int i = 0; cout
[C++]namespace(이름 공간) # 출저 : 열혈 C++프로그래밍(책) 작은 프로젝트면 상관없지만 프로젝트가 커지게 되면 많은 함수를 써야되는 상황이 발생한다. 그렇게 되면 1개의 팀에서 혹은 1개의 회사가 아닌 여러 팀, 회사에서 프로젝트를 진행할 경우 문제가 발생할 수 있다. 바로 함수의 이름이 충돌이 나는 경우다. namespace의 정의 즉 이를 방지하기 위한 방법으로 namespace가 필요한 것이다. 기본원리를 설명하면, 한집에 철수라는 이름의 사람이 2명 산다면, 상황에 따라 문제가 될수 있지만, 서로 살고 있는 집이 다르다면 문제 될 것이 없다. '201호 사는 철수', '202호 사는 철수'로 구분을 할 수 있기 때문이다. '201호', '202호' 와 같이 공간을 나누는 것이 namespace의 기본 원리 인 것 이다..
[C++]인라인(Inline) 함수 #열혈 C++프로그래밍(책) Inline 함수란 ? : in (내부) line(프로그램 코드 라인)을 의미 함. 즉, 프로그램 코드라인 안으로 들어가 버린 함수 라는 뜻. inline함수를 이해하기 위해서는 우선 C언어의 매크로 함수를 알아야 한다. 매크로 함수(#define 함수 이름(인자) 치환할 것) #define square(x) x* x : 위 문장의 의미는 square 라는 이름의 매크로 함수로 인자로 x 를 받아서 x*x 로 치환한다는 의미 입니다. 여기서 #define의 의미는 '치환역할을 수행한다' 입니다. > 매크로 함수의 대표적인 장점은 일반적인 함수에 비해서 실행속도의 이점이 있다. > 단점은, 정의하기가 어렵다. 복잡한 함수를 매크로의 형태로 정의하는데 한계가 있다. C언어 기반 ..