Tags
- stack
- CodingTest
- ๋ฐฑํธ๋ํน
- LV2
- Dynamic Programming
- ๊ต์ฌ
- ๊ทธ๋ํ ์ด๋ก
- BOJ
- ๊น์ด ์ฐ์ ํ์
- ๋๋น ์ฐ์ ํ์
- ์๋ฃ๊ตฌ์กฐ
- ์๋ฎฌ๋ ์ด์
- ์ํ
- queue
- greedy
- DP
- Brute Force Algorithm
- ๋ฌธ์์ด
- sort
- PGM
- SpringBoot
- ๊ตฌํ
- Study
- BFS
- ์ ๋ ฌ
- Python
- dfs
- ์ ์๋ก
- Java
- ๊ทธ๋ํ ํ์
Archives
๊ธฐ๋ก๋ฐฉ
Lv.2 : ๋ค์ ์๋ ํฐ ์ ์ฐพ๊ธฐ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ํ์ฌ ์ธ๋ฑ์ค์ ์๋ณด๋ค ๋ค์์๋ ์ ์ค์์ ํ์ฌ ์๋ณด๋ค ํฌ๋ฉด์ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฅผ ์ฐพ๋๋ค.
- ๊ทธ๋ฐ ์๊ฐ ์๋ค๋ฉด -1์ ์ ์ฅํ๋ค.
๐ธ ๋ฌธ์ ํ์ด ๐ธ
- ํ์ฌ ์๋ณด๋ค ํฐ '๊ฐ์ฅ ๊ฐ๊น์ด ์'๋ ์คํ์ ์ด์ฉํด ์ฐพ์ ์ ์๋ค.
- ๋ค์์๋ถํฐ ์์ผ๋ก ์งํํด์, ํ์ฌ ์๋ณด๋ค ํฐ ๊ฐ์ด ๋์ฌ ๋ ๊น์ง ์คํ์์ ์๋ฅผ ๋นผ๋ธ๋ค. ๋ง์ฝ ์๋ค๋ฉด -1์ ์ ์ฅํ๊ณ ํ์ฌ ๊ฐ์ ์คํ์ ๋ฃ๊ณ ๋ค์์ ๊ณ์ฐํ๋ค.
- ํ์ฌ ์๋ณด๋ค ์์ ์๋ฅผ ์คํ์์ ๋นผ๋ ๋๋ ์ด์ ๋ ์ด์ฐจํผ ํ์ฌ ์๋ฅผ ์คํ์ ๋ฃ๊ธฐ ๋๋ฌธ์, ์ด ๋ค์ ๊ณ์ฐ์์ ์๋ตํด๋ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.util.Stack;
class Solution {
public int[] solution(int[] numbers) {
int[] answer = new int[numbers.length];
Stack<Integer> stack = new Stack<>();
for (int i = numbers.length-1; i >= 0; i--) {
answer[i] = -1;
while(!stack.isEmpty() && stack.peek() <= numbers[i])
stack.pop();
if (!stack.isEmpty())
answer[i] = stack.peek();
stack.push(numbers[i]);
}
return answer;
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ฃผ์ด์ง ๋ฐฐ์ด numbers๋ฅผ ๋ค์์๋ถํฐ ์์ผ๋ก ํ์ํ๋ฉฐ ๊ณ์ฐํ๋ค.
- ๋ค์ ์๋ ํฐ ์๊ฐ ์์ ์ ๋ ์์ผ๋ฏ๋ก, answer[i]๋ฅผ -1๋ก ์ด๊ธฐํ ํ๋ค.
- ์คํ์ด ๋น๊ฑฐ๋ ํ์ฌ ๊ฐ๋ณด๋ค ํฐ ์๊ฐ ๋์ฌ ๋ ๊น์ง ์์๋ฅผ ๊บผ๋ธ๋ค.
- ๋ง์ฝ ์คํ์ ์์๊ฐ ์๋ค๋ฉด, ๊ทธ ์๊ฐ ํ์ฌ ์๋ณด๋ค ํฐ ๋ค์์๋ ์ ์ด๋ฏ๋ก answer[i]์ ์ ์ฅํ๋ค.
- ํ์ฌ ์๋ฅผ ์คํ์ ๋ฃ๊ณ ๋ค์ ๊ณ์ฐ์ ์งํํ๋ค.
๐ธ end ๐ธ
- ์ฒ์์ 2์ค ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ตฌํํด์, ๋ค์ ์๋ฅผ ์ง์ ์ ํ์ ์ผ๋ก ํ์ํ๋ ๋ฐฉ๋ฒ์ ์ผ๋๋ฐ, ํ ์คํธ ํ๋ฐ ๋ถ๋ถ์์ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค.
- dp์ธ๊ฐ ํ์ง๋ง ์ง์ ์ ํ์ดํ ๋ฌธ์ ์ ๋ค๋ฅธ ์ฌ๋๋ค ํ์ด์์ ์ด ๋ฌธ์ ๊ฐ ์ธ๊ธ๋์ด์ ์คํ์ ์ ์ฉํด๋ณด๊ณ ์ ํ๊ณ , ์ฝ๊ฒ ํ์ด๋์๋ค. ์๋ฃ๊ตฌ์กฐ๋ฅผ ์๋ง๊ฒ ์ ํํ๋๊ฒ ์ผ๋ง๋ ์ค์ํ์ง ์ ์ ์์๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Lv.2 : ๋กค์ผ์ดํฌ ์๋ฅด๊ธฐ (0) | 2023.11.23 |
---|---|
Lv.2 : ์คํ์ฑํ ๋ฐฉ (0) | 2023.11.23 |
Lv.2 : ๋ ๋ฐ๋จน๊ธฐ (0) | 2023.11.23 |
Lv.2 : ์ฃผ์๊ฐ๊ฒฉ (0) | 2023.11.23 |
Lv.2 : ์ต๋๊ฐ๊ณผ ์ต์๊ฐ (0) | 2023.11.22 |