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);
}
}
'컴퓨터 프로그래밍 > 알고리즘' 카테고리의 다른 글
프로그래머스-폰켓몬 (0) | 2020.06.04 |
---|---|
프로그래머스-점프와 순간 이동 (0) | 2020.06.04 |
프로그래머스-멀리뛰기 (0) | 2020.06.03 |
프로그래머스-카펫 (0) | 2020.06.03 |
프로그래머스-최솟값 만들기 (0) | 2020.06.03 |