[Algorithm Study] 백준 1138
문제 출처 : https://www.acmicpc.net/problem/1138
접근 방법
위의 문제는 숫자를 나열했을 때 자신보다 큰 수의 개수의 정보를 가지고 수열을 출력하는 문제입니다. 이를 통해 문제에 접근한 방법은 임의의 0으로만 채워진 배열을 선언한 후 2중 for문을 돌며 조건에 만족하는 경우에 그 자리에 수를 입력하는 방식으로 문제를 해결했습니다.
소스 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int[] tall = new int[N+1];
int[] answer = new int[N+1];
st = new StringTokenizer(br.readLine());
for(int i = 1; i <= N; i++){
tall[i] = Integer.parseInt(st.nextToken());
}
for(int i = 1; i <= N; i++){ // 각 숫자에 대해서
int cnt = 0; // 나도 큰 사람 체크
for(int j = 1; j <= N; j++){
if(i == 1){ // 1인 경우
answer[tall[i]+1] = i;
}
else{
if(answer[j] == 0){
if(tall[i] <= cnt){
answer[j] = i;
break;
}
else{
cnt++;
}
}
}
}
}
for(int i = 1; i <= N; i++){
System.out.print(answer[i]+" ");
}
}
}
Author And Source
이 문제에 관하여([Algorithm Study] 백준 1138), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@seokhwan-an/Algorithm-Study-백준-1138저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)