반응형
안녕하세요
BlockDMask입니다.
백준 알고리즘 사이트를 알게되어서,
문제를 풀고 게시하려 합니다.
잘부탁드립니다.
0) 제목
- 2017 인하대학교 프로그래밍 경진대회(IUPC) A번 김식당 입니다.
- C++을 이용하여 풀었습니다.
1) 문제설명
- 초기 값으로 N(입력될 쿼리의 갯수), M(테이블의 수)가 들어옵니다.
- 쿼리의 종류로는
order [int][int]
sort
complete [int] 가 있습니다.
2) 풀이과정
- order와 sort만 보고, 배열로 풀려고 했으나, 중간 값을 삭제하는 complete 가 주어져서,
배열은 삭제 후 재 배열을 해주어야 하기 때문에 complete에 맞지 않는다고 판단하였습니다.
- 그래서 중간값을 삭제해 줄 수 있고, 자동으로 동적할당을 해주는 STL vector container를 이용하여 풀었습니다.
pair를 이용하여서 테이블의 수(int)와 주문 시간(int)을 받았습니다.
3) 함수설명
함수가 따로 없어서 주석 달아놓았습니다.
4) 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #include<iostream> #include<string> #include<vector> #include<algorithm> using namespace std; int main(void){ int N=0; //number of queries int M=0; //number of tables int tableNum, orderTime; string str; cin>>N; cin>>M; //pair<int, int> 타입으로 vector v 선언. vector<pair<int, int> > v; for(int i=0; i<N; i++){ cin>>str; if(str == "order"){ cin >> tableNum; cin >> orderTime; //vector 에 pair<int, int> 타입으로 orderTime 과 tableNum 삽입. v.push_back(pair<int, int>(orderTime, tableNum)); }else if(str == "complete"){ cin >> tableNum; //iterator 를 사용하여 vector의 시작부터 끝까지 반복하면서, tableNum을 찾으면 erase. for(vector<pair<int, int> >::iterator iter=v.begin() ; iter!=v.end() ; iter++){ if(tableNum == iter->second){ v.erase(iter); break; } } }else{ sort(v.begin(), v.end()); } if(v.size() == 0){ cout << "sleep" << endl; continue; } for(vector<pair<int, int> >::iterator iter=v.begin() ; iter!=v.end() ; iter++){ cout << iter->second << " " ; } cout << endl; } return 0; } | cs |
5) 문제 풀이 인증
경로 : University > 인하대학교 > 2017 인하대학교 프로그래밍 경진대회(IUPC) A번
출처 : https://www.acmicpc.net/problem/14612
STL 을 이제 배우기 시작해서 많이 버벅대면서 하고있습니다.
백준 아이디는 공개하지 않고 캡쳐 했습니다.
반응형
'<알고리즘 문제풀이&연습> > [C++] 백준, 프로그래머스 등등' 카테고리의 다른 글
[백준 2577] 숫자의 개수 (0) | 2017.07.26 |
---|---|
[백준 11720] 숫자의 합 (아스키코드) (0) | 2017.07.25 |
[C++ vector] Vector-Erase (0) | 2017.07.24 |
[C++ protected] Rectangle Area (Inheritance) (0) | 2017.07.19 |
[C++ 예외처리] Exceptional Server (bad_alloc, exception) (0) | 2017.07.17 |
[C 자료구조] Stack - Simple Text Editor (0) | 2017.07.14 |
[C 자료구조] Array - Left Rotation (0) | 2017.07.13 |
[C 자료구조] Tree - Is This a Binary Search Tree? (0) | 2017.07.11 |