1. 문제
https://www.acmicpc.net/problem/1138
2. 풀이 과정
처음엔 앞에서부터 빈칸을 해당 개수만큼 비워두고 해당 값을 적는 형태로 작성했다. 하지만, 자기보다 큰 수의 개수를 가지고 있기 때문에, 반대로 큰 수부터 보면서 배열의 arr[i]번째에 넣어주는 방식으로도 구현할 수 있었다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.List;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N+1];
List<Integer> result = new LinkedList<>();
st = new StringTokenizer(br.readLine());
for(int i=1; i<=N; i++){
arr[i] = Integer.parseInt(st.nextToken());
}
for(int i=N; i>=1; i--){
result.add(arr[i], i);
}
StringBuilder sb = new StringBuilder();
for(int su : result){
sb.append(su).append(" ");
}
System.out.println(sb);
}
}
결과
'코딩문제풀이 > Baekjoon' 카테고리의 다른 글
[Java] 백준 2607번 : 비슷한 단어 (0) | 2023.03.14 |
---|---|
[Java] 백준 9019번 : DSLR* (0) | 2023.03.13 |
[Java] 백준 2631번 : 줄세우기* (0) | 2023.03.10 |
[Java] 백준 1774번 : 우주신과의 교감 (0) | 2023.03.07 |
[Java] 백준 10472번 : 십자뒤집기 (0) | 2023.03.06 |