Coding Test/Algorithms
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฃผ์๊ฐ๊ฒฉ/Java - Lv.2
by The Future Engineer, Lucy
2024. 9. 29.
โ๋ฌธ์
๐์ ํ
์คํ ๋๋ ํ ๋๋ ๋จ์ ๋ฐ๋ณต๋ฌธ
โ๐ปํ์ด
ํ์ฌ ์ฃผ์๊ฐ๊ฒฉ์ด ์๊ฐ์ด ์ง๋๋ฉด์ ๋ฐ๋ ๊ฐ๊ฒฉ์ด ํ์ฌ ๊ฐ๊ฒฉ๊ณผ ๊ฐ๊ฑฐ๋ ํฌ๋ค๋ฉด ์๊ฐ์ ๊ณ์ 1์ฉ ์ฆ๊ฐ.
ํ์ฌ ๊ฐ๊ฒฉ๋ณด๋ค ์์์ง๋ค๋ฉด ๋ฐ๋ณต๋ฌธ์ ๋ฉ์ถค.
๐ป์ฝ๋
/** ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ ํ์ด**/
import java.util.*;
class Solution {
public int[] solution(int[] prices) {
int[] answer = new int[prices.length];
for(int i = 0; i < prices.length; i++)
for(int j = i + 1; j < prices.length; j++){
answer[i]++;
if(prices[i] > prices[j])
break;
}
return answer;
}
}
/** ํ๋ฅผ ์ฌ์ฉํ ํ์ด**/
import java.util.*;
class Solution {
public int[] solution(int[] prices) {
int[] answer = new int[prices.length];
Queue<Integer> q = new LinkedList<>();
for(int i : prices)
q.offer(i);
int i = 0;
while(!q.isEmpty()){
int current = q.poll();
for(int x : q){
answer[i]++;
if(current > x) break;
}
i++;
}
return answer;
}
}
๐ก์๋ก ๋ฐฐ์ด ๋ด์ฉ
**Queue**
- Queue๋ ์ธํฐํ์ด์ค๋ก FIFO ์๋ฃ๊ตฌ์กฐ์์ ์ฌ์ฉ๋๋ ๋ฉ์๋๋ฅผ ์ ์.
- LinkedList ๊ฐ์ฒด๋ฅผ Queue ์ธํฐํ์ด์ค ํ์
์ผ๋ก ๋ณํํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ.
**์ ์ธ**
- Queue<์๋ฃํ> q = new LinkedList<>(); ์๋ฃํ์ ๋ฃ์ ๊ฒฝ์ฐ ํด๋น ์๋ฃํ๋ง ์ฝ์
, ์ญ์ ๊ฐ๋ฅ.
- Queue ๋ณ์๋ช
= new LinkedList(); ์ด๋ค ์๋ฃํ์ด๋ ์ฝ์
, ์ญ์ ๊ฐ๋ฅ. (์๋ฅผ ๋ค์ด, intํ์ ๋ฃ์๋ค๊ฐ Stringํ์ ์ฝ์
๊ฐ๋ฅ.)
**์ฝ์
**
- q.add(value); ์ฝ์
์ฑ๊ณต ์ true ์คํจ ์ ์์ธ ๋ฐ์.
- q.offer(value); ์ฝ์
์ฑ๊ณต ์ true ์คํจ ์ false ๋ณํ.
**์ญ์ **
- q.remove(); ์ญ์ ๋ value ๋ฐํ ๊ณต๋ฐฑ ํ์ด๋ฉด ์์ธ ๋ฐ์.
- q.remove(value); ํ์ ํด๋น ๊ฐ์ด ์กด์ฌํ๋ฉด ํด๋น ๊ฐ ์ญ์ ํ true ์กด์ฌํ์ง ์์ผ๋ฉด false.
- q.poll(); ์ญ์ ๋ value ๋ฐํ ๊ณต๋ฐฑ ํ์ด๋ฉด null ๋ฐํ.
**ํ front**
- q.element(); ํ front์ ์์นํ value ๋ฐํ ๊ณต๋ฐฑ์ด๋ฉด ์์ธ ๋ฐ์.
- q.peek(); ํ front์ ์์นํ value ๋ฐํ ๊ณต๋ฐฑ์ด๋ฉด null ๋ฐํ.