queue 3

백준 11866번 c++ 풀이

안녕하세요 오늘은 큐를 이용하여 간단하게 문제를 풀어보겠습니다. 이 문제에서 큐를 사용해야 하는 이유는 첫 줄에 있습니다. N명의 사람이 '원'을 이루면서 앉아있다고 했습니다. 그래서 K번째 사람을 셀 때, q.push(a.front), q.pop을 k-1번 반복한다음, q.pop을 하면 구현이 됩니다. 전략: 1. queue를 선언해주고, 1부터 N까지 자연수들을 q.push()함수를 통해 대입해준다. 2. while 문에 0~k-2까지 반복하는 for문을 만들어 q.push(q.front()), q.pop()을 통해 앞에 있는 숫자를 뒤로 보내주고, q.front()를 출력해준다. 코드: #include using namespace std; int main(){ ios::sync_with_stdio(..

BOJ 문제풀이 2021.08.06

백준 2164번 c++ 풀이

안녕하세요 오늘은 큐 개념을 이용하면 아주 간단하게 풀리는 문제를 풀어보도록 하겠습니다. 전략: 1. 큐를 선언해주고 N번 반복하는 for문에서 q.push()를 이용하여 카드를 배열한다. 2. q.size()가 1이 아니면 while문을 반복하게 while문을 작성한다. 3. q.size()가 1이될때까지 q.pop(), q.pop(q.front()), q.pop() 순서대로 작성하여 1이되면 그 값을 출력한다. 코드: #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N; cin>>N; queue q; for(int i= 1; i

BOJ 문제풀이 2021.08.06

백준 10845번 c++ 풀이

안녕하세요 오늘은 큐의 함수를 입력했을때, 그 함수가 실행되고, 그 경과를 출력해야하는 문제를 풀겠습니다. 전략: 1. 큐를 선언한다. 2. N번 반복하는 for문을 만들어서 string타입의 a변수를 선언하여 cin으로 입력을 받는다. 3. 입력 받은 a가 push이면 또 int타입의 변수를 선언하여 push함수를 실행해준다. 4. 그 외 front, back, pop은 q.size()를 통하여 만약 안에 들어있는 정수가 존재하지 않는다면 -1을 출력해주고 그게 아니라면 정상적으로 그 함수들을 실행해준다. 코드: #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N; cin>>N; ..

BOJ 문제풀이 2021.08.06