더듬이의 헬로월드

Hello, World!

728x90

분류 전체보기 68

[C++기본] 20.문자열-1

문자을 배열로 선언한다면? ⇒문자로 이루어진 배열 == 문자열 문자열의 초기화는 일반 배열과는 조금 다르다. int arr[10]={1,2,3,4,5,6}; 일반 배열은 이처럼 괄호 안에 넣어주었지만, char ch1 = 'a'; wchar_t ch2 = L'b'; char ch3[10] = "ABCDEFG"; wchar_t ch4[10] = L"ABCDEFG"; 문자열은 쌍따옴표 안에 적으면 된다! char은 1바이트, wchar_t는 2바이트의 공간을 차지한다. wchar_t를 이용하면 초기화시 L을 붙여야 한다. 어떻게 이게 가능할까? 다음과 같은 코드가 있다. const wchar_t* pchar=L"abcdef"; 주소값만 들어갈 수 있는 포인터 변수에 문자열이 들어갔다는 것은 어떤 의미를 가질..

[C++기본] 19.문자

대표적으로 4가지의 메모리영역을 다시 생각해보자 1.스택 영역 2.데이터 영역 3.힙 영역 4.ROM(코드)영역 문자 자료형 char char은 1바이트의 크기를 가지는 정수형 자료형이다. 문자형 자료형인데 왜 정수형으로 표현될까? ASCII CODE 바로 아스키 코드를 이용해 정수와 문자를 매칭 시키기 때문이다. 즉, 정수65는 char형 변수에서는 'A'라는 의미도 갖는 것이다. 컴퓨터에서 문자라는 의미는 지정된 정수와 매칭시켜주어 보여주는 것이라고 할수 있다. 원래는 정수형 변수이지만, 문자형으로 해석하는 순간 사용자에게는 문자 형태로 보여진다. int test1 = 1; //1이 대입된다. char test2 = '1'; //49가 대입된다 문자 '1' 과 숫자 1은 다르다. 문자의 끝 문자가 나..

[백준/자료구조 1/C++] 10845-큐

Bronze1 문제집 링크 https://www.acmicpc.net/workbook/view/3953 문제 링크 https://www.acmicpc.net/problem/10845 문제 해결 과정 자료구조의 한 종류인 큐를 잘 알고 있다면, 풀수 있는 문제였다. STL의 queue를 이용하여 간단하게 구현하였다. 각 함수의 사용법을 숙지하면 간단하다! 주의할 점 1.오류가 날 수 있는 부분에서는 큐가 비어있는지 검사를 꼭 해주어야 한다! 코드 #include #include using namespace std; int main() { queue BOJqueue; //STL queue선언 int repeat; cin >> repeat; //명령 수 만큼 반복 string cmd;//명령어를 저장할 문자열..

카테고리 없음 2021.09.15

[백준/자료구조 1/C++] 1406-에디터

난이도 Silver3 문제집 링크 https://www.acmicpc.net/workbook/view/1406 문제 링크 https://www.acmicpc.net/problem/1406 문제 해결 과정 커서를 기준으로, 앞과 뒤 2개의 스택으로 나누어서 각 문자를 스택에 넣는다. (커서 왼쪽 스택) | (커서) | (커서 오른쪽 스택) 커서를 왼쪽으로 옮기면 왼쪽에서 하나 빼서 오른쪽에 하나 넣는다. 커서를 오른쪽으로 옮기면 오른쪽에서 하나 빼서 왼쪽에 하나 넣는다. 지울거면 왼쪽 스택에서 하나뺀다. 추가할거면 왼쪽 스택으로 추가한다! 마지막 출력시에는 커서 전 스택을 pop하고 커서 후 스택으로 push후, 커서 후 스택을 pop하며 차례대로 출력하면 된다 주의할 점 1.만약 pop할 스택이 비어있다..

[백준/자료구조 1/C++] 9012-괄호

Silver4 문제집 링크 https://www.acmicpc.net/workbook/view/3953 문제 링크 https://www.acmicpc.net/problem/9012 문제 해결 과정 한줄의 문자열을 입력받고, 문자 하나 하나를 검사해가며, 괄호의 첫부분, '(' 라면 스택에 적립, 끝부분 ')' 이라면, 스택에서 pop한다! 모든 문자를 점검했을때, 스택이 비어있다면, 성공 아니면 실패를 출력한다. 주의할 점 1.스택이 비어있는데 ')' 가 나온다면, 오류가 나므로, 이 경우를 잘 검사해야 한다. 코드 #include #include using namespace std; int main() { int repeat; cin >> repeat; for (int i = 0; i < repeat;..

[C++기본] 19.문자

대표적으로 4가지의 메모리영역을 다시 생각해보자 1.스택 영역 2.데이터 영역 3.힙 영역 4.ROM(코드)영역 문자 자료형 char char은 1바이트의 크기를 가지는 정수형 자료형이다. 문자형 자료형인데 왜 정수형으로 표현될까? ASCII CODE, 아스키 코드 바로 아스키 코드를 이용해 정수와 문자를 매칭 시키기 때문이다. 즉, 정수65는 char형 변수에서는 'A'라는 의미도 갖는 것이다. 컴퓨터에서 문자라는 의미는 지정된 정수와 매칭시켜주어 보여주는 것이라고 할수 있다. 원래는 정수형 변수이지만, 문자형으로 해석하는 순간 사용자에게는 문자 형태로 보여진다. int test1 = 1; //1이 대입된다. char test2 = '1'; //49가 대입된다 문자 '1' 과 숫자 1은 다르다. 문자의..

카테고리 없음 2021.09.03

[C++기본] 18.void 포인터

void Test(){ . . . . . . } 함수에서 리턴을 하지 않는 경우에는 void라는 키워드는 작성한다. void가 포인터와 만나면? void* pvoid=nullptr; 포인터 변수 앞의 자료형은 그 역참조의 단위를 나타낸다. 즉, int포인터라면 역참조시 int형으로 바라볼 것이다. 그럼 void는, 어떤 의미를 가지고 있을까? ⇒주소값을 가지는 포인터 변수이지만, 아직 어떤 방식으로 역참조를 할지는 정해지지 않았다는 뜻이 된다. void* vpointer=nullptr; int a = 0; float b = 0.5f; double c = 0.05; long long d = 50; vpointer = &a; vpointer = &b; vpointer = &c; vpointer = &d; 따..

[백준/자료구조 1/C++] 10828-스택

난이도 Silver4 문제집 링크 https://www.acmicpc.net/workbook/view/3953 문제 링크 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 해결 과정 C++의 STL을 이용하여 스택을 구현하여 해결했다. stack 라이브러리의 함수들을 알고 있다면 어렵지 않게 풀 수 있었다. 주의할 점 1.pop이나 top함수 호풀시 스택이 비어있다면 오류가 발생하므로 꼭 empty를 이용해 검사하자! 코드..

[백준/자료구조 1/C++] 9093-단어 뒤집기

난이도 Bronze1 문제집 링크 https://www.acmicpc.net/workbook/view/3953 문제 링크 https://www.acmicpc.net/problem/9093 문제 해결 과정 한줄의 문자열을 입력받고, 문자 하나 하나를 검사해가며, 공백이 아니라면 스택에 넣고, 공백이라면 현재 스택의 모든 문자들을 출력하는 식으로 해결했다. 스택의 자료구조를 이용하면 쉽게 풀 수 있는 문제였다. 주의할 점 1.문자열을 입력 받을 때, 어떤 함수를 쓰는지 주의해서 불필요한 문자가 들어가지 않도록 한다. 코드 #include #include #include using namespace std; stack BOJstack; //문자를 저장할 스택 선언 void Output() { //스택이 빌 때..

[C++기본] 17.const와 포인터

포인터 변수는 주소를 가리키는 변수이다. 포인터 변수는 현재 자신이 가지고 있는 주소를 다른 주소로, 혹은 아무것도 가리키지 않도록 바꿀 수도 있고, 아니면 현재 주소가 가리키는 값을 수정할 수도 있다. const와 포인터가 만나면? 포인터 변수가 상수화가 된다면 두가지의 경우를 생각해볼 수 있다. 1.포인터가 가리키는 변수를 상수화 int a; int b; const int* pointer = &a; a = 400;//가능 pointer=&b;//가능 *pointer=500//불가능 cout

728x90