본문 바로가기

백준/큐,스택,덱

(2)
백준 1021 - 회전하는 큐 www.acmicpc.net/problem/1021 덱에 들어있는 원소의 정확한 내용물은 정해지지 않았으므로 원소의 순서로 붙여진 숫자를 원소라 봐도 무방하다. N과 M이 크지 않으므로 각 원소를 제거하기 위해 왼쪽으로 회전하는 경우, 오른쪽으로 회전하는 경우를 나눠 둘 중 연산 횟수가 적은 쪽을 택하면 된다. 전체 코드 더보기 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 #include using namespace std; int n, m; deque dq; int cnt; int main() { ..
백준 17298 - 오큰수 www.acmicpc.net/problem/17298 오큰수를 더 쉽게 말하면 수열에 있는 어떤 수가 처음으로 만나는 자신보다 큰 수이다. 큰 수의 입장에서 생각해보자. 예를 들어 다음과 같은 수열이 있을 때 5 4 3 2 1 7 7을 제외한 모든 수의 오큰수는 7이 된다. 이를 잘 관찰하면 수열에서 어떤 수보다 왼쪽 방향으로 작은 수들은 모두 오큰수를 가질 수 있다는 것을 발견할 수 있다. 수열에 대해 반복문을 돌면서 while문을 이용해 스택에 마지막으로 올려진 항보다 현재 항이 크면 스택에 올려진 항을 pop하고 pop된 항의 오큰수를 현재 항으로 저장하면 수열의 모든 오큰수를 구할 수 있게 된다. 이렇게 오큰수를 모두 구한 뒤 출력해주면 정답을 받을 수 있다. 전체 코드 더보기 1 2 3 4 5 ..