์ด ๋จ์๋ก ๊ธฐ๋ก๋ ์ฃผ์๊ฐ๊ฒฉ์ด ๋ด๊ธด ๋ฐฐ์ด prices๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์ ๊ธฐ๊ฐ์ ๋ช ์ด์ธ์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ์ฌํญ
prices์ ๊ฐ ๊ฐ๊ฒฉ์ 1 ์ด์ 10,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
prices์ ๊ธธ์ด๋ 2 ์ด์ 100,000 ์ดํ์ ๋๋ค.
์ ์ถ๋ ฅ ์
prices return
[1, 2, 3, 2, 3][4, 3, 1, 1, 0]
์ ์ถ๋ ฅ ์ ์ค๋ช
1์ด ์์ ์ โฉ1์ ๋๊น์ง ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์์ต๋๋ค.
2์ด ์์ ์ โฉ2์ ๋๊น์ง ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์์ต๋๋ค.
3์ด ์์ ์ โฉ3์ 1์ด๋ค์ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง๋๋ค. ๋ฐ๋ผ์ 1์ด๊ฐ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์ ๊ฒ์ผ๋ก ๋ด ๋๋ค.
4์ด ์์ ์ โฉ2์ 1์ด๊ฐ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์์ต๋๋ค.
5์ด ์์ ์ โฉ3์ 0์ด๊ฐ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์์ต๋๋ค.
๐ก queue ์ฌ์ฉ
๐ก queue์์ ํ๋ ๋นผ๋ด๊ณ queue์ ๋ค์ด์๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ๋นผ๋ธ ๊ฐ๋ณด๋ค ์์ผ๋ฉด break ์๋๋ฉด +1
๐ก ์ง๊ธ ์์ ์ ์๋ ๋์ ๊ธฐ์ค์ผ๋ก ๋ช์ด ํ์ ์ง๊ธ ๋๋ณด๋ค ๋จ์ด์ง๋ ์ง๋ฅผ ๊ณ์ฐํ๋ ๊ฒ์
Queue<Integer> q = new LinkedList<Integer>();
while(!q.isEmpty()){
int tmp = q.poll();
for(int target : q){
answer[idx]++;
if(tmp > target){
break;
}
}
idx++;
}
import java.util.*;
class Solution {
public int[] solution(int[] prices) {
int len = prices.length;
int[] answer = new int[len];
Queue<Integer> q = new LinkedList<>();
for(int i=0; i<len; i++){
q.add(prices[i]);
}
int idx = 0;
while(!q.isEmpty()){
int tmp = q.poll();
for(int target : q){
answer[idx]++;
if(tmp > target){
break;
}
}
idx++;
}
return answer;
}
}
์ฑ๊ณตโจ
๋ฌธ์ ์ค๋ช ์ง์ง ๊ฑฐ์ง๊ฐ๋ค๐คฌ