프로그래머스에서 dp dfs bfs 부분을 시작하려다 일단 다른 것 기초부터 하자해서 백준 스택 부분에 들어갔다.
굳이 직접 구현 안해주고 C++ 의 STL 을 사용하기로 했다.
#include <stack> 을 인클루드 해준다.
- stack<type> stack 으로 스택을 만들고
- stack.push(데이터)로 추가하고자 하는 데이터를 입력합니다.
- stack.size() 는 현재 스택에 저장되어있는 데이터의 갯수를 반환합니다.
- stack.top()은 현재 스택 최상위의 데이터를 가져옵니다 (빼내는 것은 아니에요)
- stack.pop()은 현재 스택 최상위의 데이터를 제거합니다.
- stack.empty() 는 현재 스택이 비었으면 true, 아니면 false를 반환합니다.
string 입력 받을 때에 cin을 보통 사용하지만, 공백문자가 나오면 앞에서 끊게 된다.
이럴 때에는 getline(cin, str); 를 사용하자.
하지만 만약
int x;
string word;
cin>>x;
getline(cin,word);
ㅡㅡㅡㅡㅡㅡㅡㅡ
input :
5
hello world!
를 하게되면 정상적으로 출력이 되지 않는다. 5 이후의 \n 문자 때문이다.
그러니 getline을 사용할 때에는 버퍼를 비워주자.
cin.clear() 를 사용해서 비워주자~!
만약 배열에 문자열을 받을 때에는
char c[20];
cin.getline(c,20); 이런식으로 사용해주자.
string 은 printf("%s" 하면 이상한 값이 뜬다. char 배열로 printf("%s 를 하면 출력이 된다. string 을 출력할 때에는
cout<< 를 그냥 사용해주자.
char 배열의 경우에는 다음과 같이 비교한다.
strcmp(string1, string2)
0이면 같고
0보다 작으면 string1이 string2 보다 사전적으로 앞에있다.
0보다 크면 string1이 string2 보다 사전적으로 뒤에 있다.
하지만 C++ 에서 string 을 비교할 때에는 '==' 로 비교를 할 수 있다.
boj 10828 를 통해 실습을 해보았다.
'공부 기록들' 카테고리의 다른 글
19.11.13 (priority queue, deque) (0) | 2019.11.13 |
---|---|
19.11.05 (근황 토크, 팩토리 패턴) (0) | 2019.11.05 |
19.10.19(boj1541) (0) | 2019.10.19 |
19.10.18(char 배열에 대해서) (0) | 2019.10.18 |
19.10.16 (boj2217, char배열 널 값 초기화) (0) | 2019.10.17 |