컴퓨터 프로그래밍/알고리즘
프로그래머스-탑
깝돌이
2020. 6. 3. 23:30
https://programmers.co.kr/learn/courses/30/lessons/42588
코딩테스트 연습 - 탑
수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다
programmers.co.kr
<내풀이>
맨 끝의 요소 부터 차례로 바로 앞의 요소부터 대소를 비교해서 비교 대상보다 크면 그때 그 요소의 인덱스 값(+1)을 새로 생성한 배열의 요소 값으로 넣습니다.
public class l8 {
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[j]>heights[i]) {
answer[i]=j+1;
break;
}
}
}
return answer;
}
public static void main(String[] args) {
// int[] heights= {6,9,5,7,4};
int[] heights= {3,9,9,3,5, 7, 2};
for(int i: solution(heights))
System.out.println(i);
}
}