문제 해결방법은,
1. arr[입력크기]를 만들고 각 인덱스는 N키를, 인덱스의 값은 N키에서 왼쪽에 있는 자기보다 키가 큰 사람의 수.
2. arr[]에서 인덱스의 값이 0인 부분은 자신보다 키가 큰 부분.
3. 단, arr[0]부터 arr.length까지 반복하면서, 인덱스의 값이 0이면 M(입력받은 값)을 하나 빼준다. 그리고 M=0이면, 나보다 큰 값을 모두 건너왔음을 의미, 해당 인덱스에 N값을 넣어준다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
int leftCount;
for (int val = 0; val < n; val++) {
leftCount = sc.nextInt();
for (int i = 0; i < n; i++) {
// N보다 키가 큰 사람을 모두 건너왔고, arr[i]에 아무런 숫자가 없다면
if (leftCount == 0 && arr[i] == 0) {
arr[i] = val + 1;
break;
// N키보다 키가 큰 부분
} else if (arr[i] == 0) {
leftCount--;
}
}
}
for (int f : arr) {
System.out.print(f + " ");
}
}
}
'알고리즘 문제' 카테고리의 다른 글
[알고리즘 문제] 백준1343 - 폴리오미노 (0) | 2019.06.21 |
---|---|
[알고리즘 문제] 백준1969 - DNA (0) | 2019.06.19 |
[알고리즘 문제] 백준2529 - 부등호 (0) | 2019.06.11 |
[알고리즘 문제] 백준1049 - 기타줄 (0) | 2019.06.09 |
[알고리즘 문제] 백준1946 - 신입사원 (0) | 2019.06.07 |