Tags
- BFS
- queue
- Python
- DP
- ์๋ฎฌ๋ ์ด์
- PGM
- Java
- dfs
- stack
- BOJ
- Dynamic Programming
- ๋ฌธ์์ด
- greedy
- LV2
- ๋ฐฑํธ๋ํน
- ์๋ฃ๊ตฌ์กฐ
- ๊ทธ๋ํ ํ์
- sort
- ์ ๋ ฌ
- ์ ์๋ก
- SpringBoot
- ๋๋น ์ฐ์ ํ์
- Study
- ๊ต์ฌ
- CodingTest
- ๊ทธ๋ํ ์ด๋ก
- ์ํ
- ๊ตฌํ
- Brute Force Algorithm
- ๊น์ด ์ฐ์ ํ์
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_17298 : ์คํฐ์ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ๋ฐฐ์ดarr์ ์ ๋ ฅ๋ฐ์ผ๋ฉด, ํ ์ธ๋ฑ์ค i์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฒ์ ๋ฑ์ฅํ๋ arr[i] ๋ณด๋ค ํฐ ๊ฐ(์คํฐ์)์ ์ ๋ต ๋ฐฐ์ด answer[i]์ ์ ์ฅํ๋ค.
- n์ด 1,000,000(๋ฐฑ๋ง)์ด๋ฏ๋ก ์ธ๋ฑ์ค๋ง๋ค ์ค๋ฅธ์ชฝ ํ์์ ์งํํ๋ฉด O(n^2)๋ก ์๊ฐ์ด๊ณผ๊ฐ ๋๋ค.
- ์คํ์ ์ด์ฉํด์ ์คํฐ์๋ฅผ ์ฐพ์ง ๋ชปํ ์ธ๋ฑ์ค๋ง ์คํ์ ๋จ๊ธฐ๋ฉฐ ๊ณ์ฐ์ ์งํํ๋ค.
- ์คํ์ arr[top]์ด pushํ๋ ค๋ arr[i]๋ณด๋ค ์๋ค๋ฉด, ์ธ๋ฑ์ค top์ ์คํฐ์๋ arr[i]์ด๋ค.
- ๋ฐฐ์ด ์ํ๊ฐ ๋๋๋ ์คํ์ ๋จ์์๋ ์ธ๋ฑ์ค์ ๊ฐ๋ค์ ์คํฐ์๊ฐ ์์ผ๋ฏ๋ก -1๋ก ์ถ๋ ฅํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
int arr[] = new int[n];
int answer[] = new int[n];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) arr[i] = Integer.parseInt(st.nextToken());
Stack<Integer> stack = new Stack<>();
for (int i = 0; i < n; i++) {
while (!stack.empty() && arr[stack.peek()] < arr[i]){
answer[stack.pop()] = arr[i];
}
stack.push(i);
}
for (int i : answer){
if (i == 0)
sb.append("-1 ");
else
sb.append(i + " ");
}
System.out.println(sb.toString());
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ๋ฐฐ์ด์ ์ n๊ณผ ๋ฐฐ์ด arr๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์ ๋ต์ ์ ์ฅํ ๋ฐฐ์ด answer๋ ์ ์ธํ๋ค.
- ๋ฐฐ์ด arr๋ฅผ ์ํํ๋ฉฐ arr[top]๊ณผ arr[i]๋ฅผ ๋น๊ตํด ์คํ์ ๋ฃ๊ณ ๋นผ๋ฉฐ ๋ฐฐ์ด answer๋ฅผ ์ฑ์ด๋ค.
- arr[top] < arr[i] ์ด๋ฉด, answer[top] = arr[i]
๐ธ end ๐ธ
- ์ฒ์์ ์๋ก์ด ์คํ ํ์ฉ๋ฒ์ด๋ผ ์๊ฐํด์ ์ดํดํ๊ธฐ ์ด๋ ค์ ๋๋ฐ, ๋ง์ ์ดํดํ๊ณ ๋ณด๋ ๊ฐ๋จํ ์๋ฆฌ์ธ ๊ฒ ๊ฐ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_11286 : ์ ๋๊ฐ ํ (0) | 2022.11.07 |
---|---|
BOJ_2164 : ์นด๋2 (0) | 2022.11.07 |
BOJ_1874 : ์คํ ์์ด (0) | 2022.11.07 |
BOJ_11003 : ์ต์๊ฐ ์ฐพ๊ธฐ (0) | 2022.11.03 |
BOJ_12891 : DNA ๋น๋ฐ๋ฒํธ (0) | 2022.11.03 |