알고리즘/BOJ

백준 17298번 오큰수

꾸준함. 2024. 3. 15. 22:27

문제 링크입니다: 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의 최대 범위가 백만이기 때문에 O(N^2)으로는 풀 수 없는 문제였습니다.

 

알고리즘은 아래와 같습니다.

1. 원소 Ai에 대해 오큰수 페어를 지정해 주는 문제이므로 자료구조 스택을 이용했습니다.

2. 수열을 순회하며 다음과 같은 작업을 진행합니다.

2.1 스택이 비어있지 않을 경우 현재 원소와 스택의 top()과 비교합니다.

2.1.1 스택의 top()보다 현재 원소가 클 경우 스택의 top()의 오큰수는 현재 원소입니다.

2.1.2 2.1을 2.1.1의 조건을 만족할 때까지 반복합니다.

2.2 스택에 현재 원소를 넣어줍니다.

3. 수열을 순회했는데도 스택이 비어있지 않을 경우 스택 내 원소들은 오큰수가 없는 것입니다.

 

 

개발환경:Visual Studio 2022

 

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 17071번 숨바꼭질 5  (0) 2024.03.20
백준 12869번 뮤탈리스크  (0) 2024.03.18
백준 2870번 수학숙제  (1) 2024.03.13
백준 2910번 빈도 정렬  (0) 2024.03.13
백준 4659번 비밀번호 발음하기  (0) 2024.03.13