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