더듬이의 헬로월드

Hello, World!

728x90

분류 전체보기 59

[C++기본] 21.문자열-2

char의 크기가 1바이트라면, 한글은 어떻게 표현될까? char의 크기는 1바이트, 아스키 코드 기준 127개를 표현한다. 근데 생각해보면 한글을 조합하면 127은 거뜬히 넘어갈텐데, 어떻게 표현될까? 멀티바이트 방식의 문자 표현 char test[15]="abc한글123"; 'a' 'b' 'c' 와 '1' '2' '3' 은 1바이트, '한' '글' 은 2바이트가 할당되었다. 이처럼 상황에 따라서 할당되는 공간이 다르다면 멀티바이트 방식이라고 한다. 이는 현재 잘 쓰지 않고 있다. 호환성의 문제 떄문에 마이크로소프트의 윈도우에서 잔재되어있는 시스템. 표준으로 쓰이지 않는 방식이다. 와이드바이트 시스템, UNICODE 모든 문자를 2바이트로 표현하는 방식이다. 유니코드 문자셋을 사용하는 것이 많은 기기와..

[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() { //스택이 빌 때..

728x90