목록전체 글 (85)
Seung's Learning Record
정렬을 아주 쉽게 도와주는 sort()함수는 헤더를 include 하여 사용할 수 있다. sort()함수는 C++ STL에서 제공하는 함수로써 각종 알고리즘 문제를 풀 때 자주 활용하는데 이 함수의 시간 복잡도는 nlogn이다. #include #include // sort()함수를 사용하기 위해 을 include 한다. using namespace std; int main(void){ int arr[5] = {3, 5, 9, 7, 8}; // 첫번째 인자 = 배열의 포인터 // 두번째 인자 = 배열의 포인터 + 배열의 크기 sort(arr, arr+5); //출력 for(int i=0; i
구현해야하는 모든 함수들을 main함수에 작성하면 어떻게 될까? 100줄이 넘지 않는 코드라면 큰 문제까지는 없을 것이다. 하지만 코드가 점점 늘어나고, 구현해야하는 기능들이 많아진다면 하나의 함수에 모두 작성하기가 어려울 것이다. 그 때문에 기능 등의 단위로 코드를 나누어 짜는것이 중요하며, 이를 위해 함수라는 것이 존재한다. 함수를 사용하면 코드의 재사용이 가능하기 때문에 훨씬 쉽고 효율적으로 코딩을 할 수 있다. 함수는 크게 두가지로 분류된다. 이미 다른사람들이 만들어놓은 라이브러리 함수와 직접 만들어 사용하는 사용자 정의 함수가 있다. 라이브러리 함수 라이브러리 함수는 미리 만들어져서 제공되는 함수로, printf()와 같은 것들이 있다. 라이브러리 함수를 사용하기 위해선 해당 함수의 정보가 들어..
코딩을 하다보면 여러 제어문들을 사용하게된다. 오늘은 그 중 하나인 조건문에 대해 정리해보자! if 문 if문의 구성은 아래와 같다. if( 조건문 ){ 명령문; } => if문의 필수부분으로 조건이 참일 경우 명령문을 실행한다. 조건이 거짓이면 다음 조건문으로 pass! else if ( 조건문 ){ 명령문; } => 판별해야할 조건이 여러가지일 경우 사용되며, 명령문 실행 조건은 if절과 동일하다. else { 명령문; } => 상위 모든 조건이 거짓일 경우, else절의 명령문이 실행된다. #include using namespace std; int main(){ int score; char grade; cout > score; if (score >= 90) grade = 'A'; else if (..
키보드를 통해 입력하는 것을 표준 입력, 데이터를 출력해내는 것을 표준 출력이라고 한다. c++에서는 이 표준 입출력이 어떻게 이루어지는지 확인해보자! #include c에선 표준 입출력 함수 사용을 위해 stdio.h 헤더파일을 include해준다. c++에서 이와 같은 역할을 해주는것이 바로 iostream이다. c++에서 사용자 정의 헤더를 제외한 표준 헤더 파일을 가져올땐 .h를 붙이지 않는점을 주의하자. cin, cout c언어의 표준 입출력 방식과 가장 큰 차이점은 아무래도 변수의 형식을 신경써도되지 않는다는 점이 아닐까싶다. c++의 표준 입출력 함수를 사용할 땐 사용하려는 변수의 자료형을 알지 못하여도 사용할 수 있다. 컴파일러가 가장 알맞은 자료형을 선택해서 적용해주기 때문에 사용자의 실..
알고리즘과 자료구조를 공부하기에 앞서 필수가 되는 지식 중 하나인 시간 복잡도와 공간 복잡도에 대해 정리해보자 복잡도 복잡도란 쉽게 말해 알고리즘의 성능과 효율성을 나타내는 척도이다. 복잡도를 나타내는 표기법으로는 O(빅오), Ω(오메가), Θ(세타)등이 있고, 주로 빅오 표기법과 세타 표기법이 많이 사용된다. 복잡도에는 수행 시간을 평가할 수 있는 시간 복잡도와 사용 공간을 평가할 수 있는 공간 복잡도가 있다. 시간 복잡도(Time Complexity) 시간 복잡도란 특정 크기의 입력을 기준으로 할 때 필요한 연산의 횟수를 나타낸다. 알고리즘의 성능 평가는 아래와 같은 case를 나누어 평가한다. CASE 설명 최선의 경우 (Best Case) 최적의 입력 상태에서 작업을 완료하는데 걸린 연산 횟수가 ..
c++은 풍부한 데이터형이 존재하며 이 덕분에 사용자는 선택의 폭이 넓지만 컴퓨터의 처리가 복잡해 질 수 있다. 이 때문에 C++은 아래와 같은 상황에서 데이터형의 변환 기능을 제공한다. 1. 특정 데이터형의 변수에 다른 데이터형의 값을 대입했을 때 2. 수식에 데이터형을 혼합하여 사용했을 때 3. 함수에 매개변수를 전달할 때 #include using namespace std; int main(){ int a = 1.2345; cout
다음은 원의 넓이를 구하는 간단한 코드이다. #include int main(){ int r = 3; float s = r * r * 3.141592; int r2 = 4; float s2 = r2 * r2 * 3.141592; return 0; } 해당 코드에선 반지름이 다른 두 원의 넓이를 구하기 위해 똑같은 코드가 반복되고 있다. 반복되는 두 코드 중 3.141592라는 수는 변하지 않는다. 만약 원의 개수가 만개가 넘어가게 될 경우 (함수를 쓰지 않는다는 전제하에) 3.141592 라는 수를 계속해서 반복 타이핑을 하게 될텐데 이 과정에서 오탈자가 발생할 가능성이 있다. 이를 방지하기 위해 우리는 상수라는 개념을 사용할 수 있다. #include int main(){ const float PIE ..
char형은 작은 문자형, 즉 한글자를 표현하고자 할 때 사용하는 변수형이다. c++에서는 문자를 표현할 때 ASCII코드를 사용한다. #include using namespace std; int main(){ int a = 77; char b = a; char c = 'M'; cout
자료형의 종류는 다양하지만 오늘은 정수형과 실수형에 대해서 작성해보고자 한다. 정수형은 소수부가 없는 수를 뜻하며, 실수형은 소수부가 존재하는 수를 뜻한다. 정수형 형식 메모리 크기(byte) 표현 가능한 범위 signed char 1 -128 ~ 0 ~ 127 signed short int 2 -32,768 ~ 0 ~ 32,767 signed int 4 -2,147,483,648 ~ 0 ~ 2,147,483,647 signed long int 4 -2,147,483,648 ~ 0 ~ 2,147,483,647 signed long long int 8 -9,223,372,036,854,775,808 ~ 0 ~ 9,223,372,036,854,775,807 unsigned char 1 0 ~ 255 unsi..
변수란 말 그대로 변할 수 있는 수이며 이와 반대되는 개념으로는 항상 일정한 값을 가지는 상수가 있다. 오늘은 변수에 대해서 간단히 정리해보고자 한다. 변수의 선언 방법은 간단하다. 사용하고자 하는 변수의 자료형과 변수명만 적으면 끝!! 변수의 자료형에 대해서는 다음번에 포스팅 할 예정이다. #include using namespace std; int main(){ int abc; //가능 int 77aaa; //불가능 int return; //불가능 int aa aa; //불가능 return 0; } 변수 선언 규칙 1. 숫자로 시작할 수 없음 2. c++에서 사용중인 키워드는 변수명으로 사용할 수 없음 3. white space를 사용할 수 없음 변수의 사용법 역시 간단하다. 선언된 변수에 원하고자 ..