문제 풀이262 [C++] 백준 5430번 : AC https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 문제 풀이 이 문제에서 포인트는 세 가지로 나누어 볼 수 있다. 1. string을 입력받아서 덱에 저장 2. 에러가 발생하는 조건 3. 시간제한이 단 1초 입력받은 숫자들은 string이므로 stoi 함수를 사용해서 int로 변환해주어야 한다. 주의할 점은 단순히 isdigit으로 숫자인지 아닌지 분류한다면 두 자리 이상의 수를 제대로 덱으로 가져올 수 없다. 따라서 콤마( , )와 닫는 괄호 ( ] )가 등장한다면 int로 변환해서 덱에 push 해.. 2021. 7. 26. [C++] 백준 1021번 : 회전하는 큐 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 문제 풀이 문제에서 3가지 연산이 주어진다. 1번 연산은 첫 번째 원소를 뽑는 연산, 2번 연산은 왼쪽으로 회전, 3번 연산은 오른쪽으로 회전이다. 문제의 포인트는 어느 방향으로 회전할지 정하는 것이다. 타깃이 되는 값의 인덱스를 저장해 begin으로부터의 거리(left)와 end로부터의 거리(right)를 비교한다. 타깃 값을 저장하는 큐가 빌 때까지 연산을 반복한다! left > right.. 2021. 7. 25. [C++] 백준 10866번 : 덱 https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 풀이 덱의 기본 구현을 묻는 문제였다! 느낀 점 이번 기회에 덱을 공부할 수 있었다. 조만간 STL 컨테이너인 스택과 큐, 덱에 대해서 한번 정리글을 올려야겠다. 코드 #include #include #include using namespace std; int n, tmp; string command; deque dq; int main() { ios_base::sync_wit.. 2021. 7. 24. [C++] 백준 1966번 : 프린터 큐 https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제 풀이 이번 문제는 idx와 중요도를 pair로 만들어서 큐에 저장하고, 중요도를 순서대로 정렬한 다른 컨테이너를 만들어서 비교하는게 중요하다. 중요도를 비교해서 맞으면 출력회수(cnt)를 늘리고 만약 m과 idx가 같다면 출력회수를 출력하고 종료한다. 느낀 점 문제를 해결하고 보니 많은 분들이 우선순위 큐를 이용하셨고 나보다 코드가 더 깔끔했다. 하지만 나는 우선순위 큐에 대해서 몰랐기 때문에 .. 2021. 7. 24. [C++] 백준 11866번 : 요세푸스 문제 0 https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 문제 풀이 요세푸스 문제에서는 k번째에 사람을 제거한다. 구현한 큐에서 k-1번 동안 front를 맨 뒤로 옮기고, k번째에 front 값을 출력한다. 큐가 비어있지 않다면 ', '를 출력해서 요구하는 출력 형식에 맞춘다! 느낀 점 그렇게 어려운 문제는 아니었지만 코드를 깔끔하게 구현하기 힘들었다. 깔끔하게 구현하기 위해서 시간을 조금 소모한 것 같다. 코드 #include #include using namespace std; int n, k; queue q; void func(i.. 2021. 7. 24. [C++] 백준 2164번 : 카드2 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 문제 풀이 문제에 풀이법이 나와있다! 맨위 카드는 버리고 그 다음 카드는 맨 밑으로 넣는다. 느낀 점 어렵지 않은 문제였다. 코드 #include #include using namespace std; int n; queue q; void func(int n) { for (int i = 1; i 1) { q.pop(); q.push(q.front()); q.pop(); } cout > n; func.. 2021. 7. 24. 이전 1 ··· 27 28 29 30 31 32 33 ··· 44 다음