https://www.acmicpc.net/problem/17451
λ¬Έμ
μκΈ° 2XXXλ , μ§κ΅¬κ° μνμ±κ³Ό μΆ©λν μκΈ°μ μ²νλ€! λλν κ³Όνμ ν€νλ νν μ°μ£Όλ₯Ό λλΉλ©° μ§κ΅¬λ₯Ό λμ ν νμ±μ μ°Ύλ λ§μ€ν μ무λ₯Ό λ§‘κ² λμλ€.
μ°λ¦¬λ νμ¬ μ§κ΅¬(=νμ± 0)μ μλ€. μ¬λ¬ μμΈμ κ³ λ €ν κ²°κ³Ό, νμ± 1, νμ± 2, …, νμ± (n-1)μ μμλλ‘ νμΈνκ³ μ§κ΅¬(=νμ± n)μ λμμ€λ κ²μ΄ λΉμ©μ μ΅μ μμ μμλλ€. λͺ¨λ μ μ \(1 \leq i < n\)μ λν΄, νμ± iμ μ§κ΅¬κ° μλλ€.
μ§κ΅¬μλ "μ΄κ³ μ κ±·κΈ° κΈ°κ³"λΌλ, μλλ₯Ό μνλ λ§νΌ μ¬λ¦΄ μ μλ νΉμν μ₯μΉκ° μλ€. μ§κ΅¬λ₯Ό λ²μ΄λλ©΄ μλλ₯Ό λ¨μ΄λ¨λ¦΄ μ μμ λΏ λμΌ μλ μλ€.
λ€μ μ§μμ κ°κΈ° μν΄μλ μμΉμ μΌλ‘λ νμν μλλ₯Ό μ νν λ§μΆ°μΌ νμ§λ§, λ€ννλ νν μ°μ£Όλ μΌμ ν κ°κ²©μ λκ³ μκΈ° λλ¬Έμ νμν μλμ μμ μ μ λ°°λ‘λ λ€μ μ§μμΌλ‘ μ΄λν μ μλ€. λν, μΆ©λΆν λΉ λ₯Έ μλλ‘ μ΄λ μ€μ΄λ©°, μ§κ΅¬μ λ체 νμ±μΌλ‘ μ ν©νμ§ μλμ§λ λμ°©ν λ€ λ°λ‘ μ μ μκΈ° λλ¬Έμ μ΄λ€ νμ±μμλ λλ¬ν λ€ μλλ₯Ό μ μ§ν μ± λ€μ νμ±μΌλ‘ μ΄λν μλ μλ€.
λͺ¨λ \(1 \leq i \leq n\)μ λν΄, νμ± (i-1)μμ νμ± iλ‘ μ΄λνλ λ° νμν (μ΅μ) μλ viκ° μ£Όμ΄μ§λ€. μ§κ΅¬μμ μ¬λ €μΌ νλ μλλ₯Ό μ΅μννμμ€.
μ λ ₯
첫째 μ€μ n \(1 \leq n \leq 3.105\)μ΄ μ£Όμ΄μ§λ€.
λμ§Έ μ€μ nκ°μ μ μ v1, v2, …, vnμ΄ κ³΅λ°±μ μ¬μ΄μ λκ³ μ£Όμ΄μ§λ€. λͺ¨λ μ μ \(1 \leq i \leq n\)μ λν΄ \(1 \leq vi \leq 109\)μ λ§μ‘±νλ€.
μΆλ ₯
μ νλλ₯Ό μΆλ ₯νλ€. μ΄ μλ μ§κ΅¬μμ μ¬λ €μΌ νλ μλμ μ΅μκ°μ΄λ€.
νμ΄
Greedy νκ² ν΄κ²°~
맨 λ§μ§λ§ νμ±λΆν° μ§ννλ€ π€
μλμ μ΅μκ°μ ꡬνλ©΄ λκΈ° λλ¬Έμ λ§μ§λ§ νμ±μμλ κ·Έ νμ±μ μλμ κ°μ κ°μ΄λ©΄ μΆ©λΆνκΈ° λλ¬ΈβΌοΈ
λ€μμλΆν° μ§ννλ©΄μ,
1οΈβ£ νμ¬μ μλ (velocity) κ° i νμ±μ μλλ³΄λ€ μμΌλ©΄ π velocity = i νμ±μ μλ
2οΈβ£ νμ¬μ μλ (velocity) κ° i νμ±μ μλλ³΄λ€ ν¬λ©΄ π 2κ°μ§ κ²½μ°κ° λμ¨λ€
- νμ¬μ μλκ° i νμ±μ μλμ μμ λ°°μμ΄λ©΄ π μκ΄ γ΄ μ§ν βΌοΈ
- νμ¬μ μλκ° i νμ±μ μλμ μμ λ°°μκ° μλλΌλ©΄ π velocity κ°λ³΄λ€ ν¬λλ‘ νλ©΄μ i νμ±μ μλμ μμ λ°°μλ‘ λ§λ€μ΄ μ€λ€βΌοΈ
μ½λ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main_BOJ_17451_ννμ°μ£Ό {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer stringTokenizer;
int n = Integer.parseInt(br.readLine());
long[] planet = new long[n];
stringTokenizer = new StringTokenizer(br.readLine());
for(int i = 0;i < n ; i++){
planet[i] = Long.parseLong(stringTokenizer.nextToken());
}
long velocity = planet[n-1];
for(int i = n-2; i >= 0; i--){
if(velocity < planet[i])
velocity = planet[i];
else if(planet[i] < velocity && velocity%planet[i] != 0)
velocity = ((velocity / planet[i]) + 1) * planet[i];
}
System.out.println(velocity);
}
}
'μκ³ λ¦¬μ¦ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ λ°±μ€ / BOJ 19816 ] μ«μ μΉ΄λ 2 ( μλ° / JAVA ) (0) | 2021.10.27 |
---|---|
[ λ°±μ€ / BOJ 2776 ] μκΈ°μ ( μλ° / JAVA ) (0) | 2021.10.21 |
[ λ°±μ€ / BOJ 1976 ] μ¬ν κ°μ ( μλ° / JAVA ) (0) | 2021.10.20 |
[ λ°±μ€ / BOJ 1967 ] νΈλ¦¬μ μ§λ¦ ( μλ° / JAVA ) (0) | 2021.10.20 |
[ λ°±μ€ / BOJ 2729 ] μ΄μ§μ λ§μ ( μλ° / JAVA ) (0) | 2021.10.19 |