|
์ฝ๋ ์์ฑํ๊ธฐ
public int[] solution(int[] prices) {
int[] answer = new int[prices.length];
for(int i=0; i< prices.length-1; i++) {
int cnt = 1;
inner:for(int j=i+1; j< prices.length-1; j++) {
if(prices[i] > prices[j]) {
break inner;
} else {
cnt++;
}
}
answer[i] = cnt;
}
return answer;
}
Java
๋ณต์ฌ
|
์ฝ๋ ์ค๋ช
ํ๊ธฐ
๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค
๋ฌธ์ ์ ์ค๋ช
์ด ์์ฃผ ๋น์ฝํ๋ค
[1,2,3,2,3]์ ๋ฐฐ์ด์ด ์์๋
๊ฐ ๋ฐฐ์ด์ ๊ฐ๊ฒฉ์ ๋ํ๋ด๊ณ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์ ์๊ฐ์ ๊ตฌํ๋ ๊ฒ์ด๋ค
์ฒซ๋ฒ์งธ 1์
โข
1 โ 2๋ก๊ฐ๋ 1์ด
โข
2 โ 3์ผ๋ก ๊ฐ๋ 1์ด
โข
3 โ 2๋ก ๊ฐ๋ 1์ด
โข
2 โ 3์ผ๋ก ๊ฐ๋ 1์ด
์ด 4์ด๊ฐ ๊ฑธ๋ฆฐ๋ค
2๋ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํ๋ฉด 3์ด๊ฐ ๋์จ๋ค
3์ 3์์ 2๋ก ๊ฐ๊ธฐ๋๋ฌธ์ ๊ฐ๊ฒฉ์ด ๋จ์ด์ก์ง๋ง 3 โ 2๋ก ๊ฐ๋ ์๊ฐ์ด 1์ด๊ฐ ๊ฑธ๋ฆฌ๊ธฐ๋๋ฌธ์
์ฆ ๊ฐ๊ฒฉ์ 2๋ก ๋ฐ๋์ด์ผ์ง ๋จ์ด์ง๊ฒ ์ ์ฉ์ด๋๊ณ 3 โ 2๋ก ๊ฐ๋ ์๊ฐ์ ํ๋ ๊ธฐ ๋๋ฌธ์ 1์ด๊ฐ ๋์จ๋ค
2๋ 2 โ 3 1์ด๊ฐ ๋์ค๊ณ
๋ง์ง๋ง 3์ ๋ค์ ์ซ์๊ฐ ์๊ธฐ ๋๋ฌธ์ 0์ด ๋์จ๋ค
ํด๊ฒฐ๋ฐฉ์
์ฒ์์ ๋ฐ๊นฅ for๋ฌธ์๋ ๋ฐฐ์ด๊ธธ์ด-1 ๋งํผ์ ๋ฒ์๋ฅผ ์ฃผ์๋๋ฐ
์ด๊ฒ์ ๋ฐฐ์ด์ ์ด๋ค ์ฃผ์๊ฐ์ด ๋ค์ด๊ฐ๋ ๋ง์ง๋ง ๋ฐฐ์ด์ ์๊ฐ์ด๋ 0์ด๊ธฐ๋๋ฌธ์ด๋ค
๊ทธ๋ฆฌ๊ณ ๋ช์ด ๊ฑธ๋ ธ๋์ง ์ธ๊ธฐ ์ํ ์นด์ดํธ๋ฅผ 1๋ถํฐ ์์์ ํ๋ค
์๋ํ๋ฉด ์์ชฝ for๋ฌธ์ด i+1๋ก ์ฃผ์๊ธฐ๋๋ฌธ์ ์ด๋ฏธ 1์ด๊ฐ ํ๋ ๊ธฐ๋๋ฌธ์ด๋ค
์์ชฝ for๋ฌธ์์๋ ์ญ์ ๋ง์ง๋ง์ 0์ด๊ธฐ๋๋ฌธ์ ๊ธธ์ด์์ 1์ ๋นผ์ฃผ์๊ณ
prices[i] > prices[j] ์ฆ ํ์ฌ ๋ณด๊ณ ์๋ ์ฃผ์ ๊ฐ๊ฒฉ๋ณด๋ค ์ฃผ์์ด ๋จ์ด์ก์๊ฒฝ์ฐ
๊ทธ ์ฆ์ for๋ฌธ์ ์ข
๋ฃํ๋ค ์๊ฐ์ด๋ฅผ ์ถ๊ฐ๋ฅผ ์ํด๋ ๋๋ ์ด์ ๋ ์ด๋ฏธ ์นด์ดํธ๋ฅผ 1๋ก ์ฃผ์๊ธฐ ๋๋ฌธ์ด๋ค
๋ง์ฝ ์ฃผ์ ๊ฐ๊ฒฉ์ด ์๋จ์ด์ก์๊ฒฝ์ฐ ์นด์ดํธ๋ฅผ ์ฌ๋ ค์ค๋ค
๊ทธ๋ฆฌ๊ณ for๋ฌธ์ด ๋๋๋ฉด ํด๋น answer๋ฐฐ์ด์นธ์ ์นด์ดํธ๋ฅผ ๋ฃ์ด์ค๋ค