https://programmers.co.kr/learn/courses/30/lessons/42588
์ฝ๋
class Solution {
public static int[] solution(int[] heights) {
int[] answer = new int[heights.length];
answer[0] = 0;
for(int i=heights.length-1; i>0; i--) {
for(int j=i-1; j>=0; j--) {
if(heights[i] < heights[j]) {
answer[i] = j+1;
break;
}
}
}
return answer;
}
}
ํ์ด
๋ฌธ์ ์ ์์ ์ฒ๋ผ ํ์ ๋์ด๊ฐ heights = [6, 9, 5, 7, 4] ๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ํ์ํ๋ฉด ์์ ๊ฐ๋ค.
์ค๋ฅธ์ชฝ(4)๋ถํฐ ๊ฐ ํ์ด ์ ํธ๋ฅผ ์๋ฉด, ๊ทธ ํ๋ณด๋ค ๋์ ํ์ด ์ ํธ๋ฅผ ๋ฐ์ ์ ์๋ค.
๊ฐ์ฅ ์ค๋ฅธ์ชฝ ํ(๋์ด=4)๊ฐ ์ ํธ๋ฅผ ๋ฐ์ฌํ๋ฉด, ๋ฐ๋ก ์ผ์ชฝ์ ์๋ ๋ค ๋ฒ์งธ ํ์ด ์ ํธ๋ฅผ ๋ฐ๊ณ ,
๋ค ๋ฒ์งธ ํ(๋์ด=7)์ด ์ ํธ๋ฅผ ๋ณด๋ด๋ฉด ๋ ๋ฒ์งธ ํ(๋์ด=9)์ธ ํ์ด ์ ํธ๋ฅผ ๋ฐ๊ณ ,
์ธ ๋ฒ์งธ ํ(๋์ด=5)์ด ์ ํธ๋ฅผ ๋ณด๋ด๋ฉด ๋ ๋ฒ์งธ ํ(๋์ด=9)์ธ ํ์ด ์ ํธ๋ฅผ ๋ฐ๊ณ ,
๋ ๋ฒ์งธ ํ(๋์ด=9)์ ์ข์ธก์ ์์ ๋ณด๋ค ๋์ ํ์ด ์์ผ๋ฏ๋ก ์ ํธ๋ฅผ ๋ฐ์ง ๋ชปํ๊ณ ,
์ฒซ ๋ฒ์งธ ํ(๋์ด=6)์ ์ฒซ๋ฒ์งธ์ด๋ฏ๋ก ํญ์ ์ ํธ๋ฅผ ๋ฐ์ง ๋ชปํ๋ค.
i.e) ๊ฐ์ฅ ์ค๋ฅธ์ชฝํ๋ถํฐ(i = heights.length-1) ์์ํด์ ํ์ ์ฒซ๋ฒ์งธ๊น์ง ๋ฐ๋ณต๋ฌธ์ ๋๋ฉด์(j = i-1; j>=0)
์์ ๋ณด๋ค ๋์ ํ์ด ์์๊ฒฝ์ฐ(heights[i] < heights[j])
๋์ ํ์ ์์น(j+1)๋ฅผ returnํ๋ ๋ฐฐ์ด์ ๋ฃ์ด์ฃผ๊ณ ๊ทธ ์ดํ๋ ํ์ํ ํ์๊ฐ ์์ผ๋ฏ๋ก break๋ก ํ์ถํ๋ค.
์ฒซ ๋ฒ์งธ ํ์๊ฒฝ์ฐ ์ข์ธก์ ์๋ฌด๋ฐ ํ๋ ์์ผ๋ฏ๋ก ํญ์ 0์ด๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level2)๊ฐ์ฅ ํฐ ์ ์ฌ๊ฐํ์ฐพ๊ธฐ(DP) (0) | 2020.03.16 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level2)ํผ๋ณด๋์น ์(์ฌ๊ท , ๋น์ฌ๊ทDP) (0) | 2020.03.16 |
[Codeforces] 1303A: Erasing Zeroes (0) | 2020.03.16 |
[๋ฐฑ์ค] 11945๋ฒ: ๋จ๊ฑฐ์ด ๋ถ์ด๋นต (0) | 2020.03.13 |
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level2)๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ (0) | 2020.03.13 |
๋๊ธ