π [λ°±μ€μκ³ λ¦¬μ¦ νμ΄] Q.1138 ν μ€λ‘ μκΈ° λ¬Έμ νμ΄
π λ¬Έμ
https://www.acmicpc.net/problem/1138
Nλͺ μ μ¬λλ€μ λ§€μΌ μμΉ¨ ν μ€λ‘ μ λ€. μ΄ μ¬λλ€μ μ리λ₯Ό λ§μλλ‘ μμ§ λͺ»νκ³ μ€λ―Όμμ μ§μλλ‘ μ λ€.
μ΄λ λ μ¬λλ€μ μ€λ―Όμμ΄ μ¬λλ€μ΄ μ€ μλ μμΉλ₯Ό κΈ°λ‘ν΄ λλλ€λ κ²μ μμλ€. κ·Έλ¦¬κ³ μμΉ¨μ μκΈ°κ° κΈ°λ‘ν΄ λμ κ²κ³Ό
μ¬λλ€μ΄ μ€μ μ μμΉκ° λ§λμ§ νμΈνλ€.
μ¬λλ€μ μκΈ°λ³΄λ€ ν° μ¬λμ΄ μΌμͺ½μ λͺ λͺ μμλμ§λ§μ κΈ°μ΅νλ€. Nλͺ μ μ¬λμ΄ μκ³ , μ¬λλ€μ ν€λ 1λΆν° NκΉμ§ λͺ¨λ λ€λ₯΄λ€.
κ° μ¬λλ€μ΄ κΈ°μ΅νλ μ λ³΄κ° μ£Όμ΄μ§ λ, μ€μ μ΄λ»κ² μμΌ νλμ§ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
π μ κ·Όλ²
BOJ Q.1138 ν μ€λ‘ μκΈ° λ¬Έμ μ
λλ€.
μ¬λλ€μ κ°μ μμ μ ν° μ¬λμ΄ μΌμͺ½μ λͺλͺ
μλμ§λ§μ μκ³ μμ΅λλ€.
μ΄ μ 보λ ν€κ° μμ μμλΆν° μ£Όμ΄μ§λλ€.
κ·Έλ¬λ―λ‘ μμ μ μΌμͺ½μ ν€ν° μ¬λμ΄ μλ μλ§νΌμ μ리λ§μ λΉμλκ³
μ리μ λ°°μΉνλ©΄ λ©λλ€.
Nλͺ
μ μλ§νΌ μ리λ₯Ό λ§λ€μ΄λκ³
μμ ν€μ μ¬λλΆν° μμλλ‘ μμ λ³΄λ€ ν° μ¬λμ΄ λ°°μΉ λ μλ§νΌμ μ리λ§
λΉμλλ©΄ λ©λλ€.
μμ λ³΄λ€ ν° μ¬λμ μ λ§νΌ μ리λ₯Ό λΉμ°κ³ μμ μ΄ μμΉν κ³³μ μ무λ μμμμ§ μλ
μ리μ λ°°μΉλ₯Ό νλ©΄ λ©λλ€.
π» μ½λ
package problem.greedy;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
public class Main_1138 {
static int N;
static int[] info;
static int[] order;
public static void main(String[] args) throws IOException {
input();
solve();
for(int i=0; i<order.length; i++){
System.out.print(order[i]+" ");
}
}
public static void solve(){
for(int i=0; i<info.length;){
int num = info[i];
int c = 0;
for(int j=0; j<order.length; j++){
boolean check = false;
if(c==num){
for(int k=j; k< info.length; k++) {
if(order[k]==0){
order[k] = (++i);
c=0;
check = true;
break;
}
}
}
if(order[j] == 0){
c++;
}
if(check)
break;
}
}
}
public static void input() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
info = new int[N];
order = new int[N];
String temp[] = br.readLine().split(" ");
for(int i=0; i<temp.length; i++){
info[i] = Integer.parseInt(temp[i]);
}
br.close();
}
}
Written on November 30, 2020