목록백준 알고리즘/스택 (4)
JUINTINATION
문제 https://www.acmicpc.net/problem/17299 17299번: 오등큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 풀이 크기가 N인 수열 A = A1, A2,..., AN이 있을 때 오른쪽에 있으면서 Ai보다 수열 A에서 등장한 횟수가 큰 수 중에서 가장 왼쪽에 있는 수인 Ai의 오큰수를 구하는 문제입니다. 코드 C언어 정수 배열 arr를 동적할당하여 입력받고 입력받은 수가 등장한 횟수를 정수 배열 cnt에 기록합니다. 이후 i를 포함한 for문에 들어가며 이때 스택에는 배열의 인덱스 값이 들어갑니다. for문 안에..
문제 https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 풀이 크기가 N인 수열 A = A1, A2,..., AN이 있을 때 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수인 Ai의 오큰수를 구하는 문제입니다. 코드 C언어 정수 배열 arr를 동적할당하여 입력받고 i를 포함한 for문에 들어갑니다. 이때 스택에는 배열의 인덱스 값이 들어갑니다. for문 안에있는 while문 안에서 스택이 비어있지 않을 때 arr[i]가 arr[스택의 최상단 데..
문제 https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 풀이 후위 표기식과 각 피연산자에 대응하는 값들을 입력받고 그 결과를 구하는 문제입니다. 코드 C언어 스택에 괄호 혹은 연산자만 들어갈 수 있었던 후위 표기식 문제와 달리 이 문제에서 스택에는 숫자만 들어갈 수 있습니다. 나눗셈을 한 후의 값이 정수가 아닐 수도 있기 때문에 double형 배열로 스택을 표현했습니다. 후위 표기식을 문자열 str에 입력받고 i를 포함한 for문에서 ..
문제 https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 풀이 스택을 이용하여 연산자가 피연산자 사이에 있는 중위 표기식을 연산자가 피연산자 앞에 있는 후위 표기식으로 바꾸는 문제입니다. 후위 표기식은 중위 표기식과 다르게 연산자의 우선순위가 없어서 순서대로 계산하면 되기 때문에 주로 프로그램 내부의 표기법으로 사용된다고 합니다. 또한 이 문제에서는 피연산자가 숫자가 아니라 1개의 문자이기 때문에 숫자의 자릿수를 생각하지 않아도 됩니다. 코드 ..