#include <cstdio>
#include <vector>
#include <cstring>
using namespace std;
int main(void)
{
vector<int> v;
int n = 0;
int pushData = 0;
char s[6];
scanf("%d",&n);
for(int i = 0 ; i < n ; i++)
{
scanf("%s", s);
// pop 일 경우 맨 앞 원소 출력 후 삭제해줌
if(!strcmp(s, "pop"))
{
printf("%d\n", v.size() == 0 ? -1 : v.front());
if(v.size()) v.erase(v.begin());
}
// size 일 경우 벡터의 사이즈 출력
else if(!strcmp(s, "size"))
{
printf("%lu\n", v.size());
}
// empty 는 벡터의 사이즈 기준으로 판단, empty() 도 있음
else if(!strcmp(s, "empty"))
{
printf("%d\n", v.size() == 0 ? 1 : 0);
}
else if(!strcmp(s, "front"))
{
printf("%d\n", v.size() == 0 ? -1 : v.front());
}
else if(!strcmp(s, "back"))
{
printf("%d\n", v.size() == 0 ? -1 : v.back());
}
// push 일 경우 정수 하나를 더 입력받아서 벡터의 맨 뒤에 넣어준다
else
{
scanf("%d",&pushData);
v.push_back(pushData);
}
}
}
[Try]
1. 성공
[Point]
1. 적절한 자료구조 선택, stl 에 있던 덱도 사용해 볼 수 있었다.
2. 벡터 사이즈 반환형이 long unsigned int 라 출력 포맷을 lu 로 해야한다.
3. string 클래스를 scanf 로 받아보려 .c_str() 을 사용해봤는데, 경고가 떠서 그냥 c스타일 문자열로 받았다.
4. c의 문자열비교와 string 의 문자열 비교 방법(연산자 오버로딩 ==)
[More]
1. 벡터 사용하지 말고 직접 만들어보기
2. 꼭 큐의 형태로 만들지 않고 배열로만도 구현은 가능한다. (8556609)
'PS > BOJ' 카테고리의 다른 글
[백준] 11866.cpp : 요세푸스 문제 0 (0) | 2020.05.12 |
---|---|
[백준] 10866.cpp : 덱 (0) | 2020.05.12 |
[백준] 1065.py : 한수 (0) | 2020.05.11 |
[백준] 4673.py : 셀프 넘버 (0) | 2020.05.11 |
[백준] 13414.py : 수강신청 (0) | 2020.05.11 |