λ¬Έμ
APCμ μ¨ κ²μ νμνλ€. λ§μ½ μ¬λ¬λΆμ΄ νκ΅μμ μλ£κ΅¬μ‘°λ₯Ό μκ°νλ€λ©΄ ν΄μ ν¨μμ λν΄ λ°°μ μ κ²μ΄λ€. ν΄μ ν¨μλ μμμ κΈΈμ΄μ μ
λ ₯μ λ°μμ κ³ μ λ κΈΈμ΄μ μΆλ ₯μ λ΄λ³΄λ΄λ ν¨μλ‘ μ μνλ€. ν΄μ ν¨μλ 무κΆλ¬΄μ§ν μμ© λΆμΌλ₯Ό κ°λλ°, λνμ μΌλ‘ μλ£μ μ μ₯κ³Ό νμμ μ°μΈλ€.
μ΄ λ¬Έμ μμλ μ¬λ¬λΆμ΄ μμΌλ‘ μ μ©νκ² μΈ μ μλ ν΄μ ν¨μλ₯Ό νλ κ°λ₯΄μ³μ£Όκ³ μ νλ€. λ¨Όμ , νΈμμ μ
λ ₯μΌλ‘ λ€μ΄μ€λ λ¬Έμμ΄μλ μλ¬Έ μλ¬Έμ(a, b, β¦, z)λ‘λ§ κ΅¬μ±λμ΄μλ€κ³ κ°μ νμ. μμ΄μλ μ΄ 26κ°μ μνλ²³μ΄ μ‘΄μ¬νλ―λ‘ aμλ 1, bμλ 2, cμλ 3, β¦, zμλ 26μΌλ‘ κ³ μ ν λ²νΈλ₯Ό λΆμ¬ν μ μλ€. κ²°κ³Όμ μΌλ‘ μ°λ¦¬λ νλμ λ¬Έμμ΄μ μμ΄λ‘ λ³νν μ μλ€. μλ₯Ό λ€μ΄μ λ¬Έμμ΄ βabbaβμ μμ΄ 1, 2, 2, 1λ‘ λνλΌ μ μλ€.
ν΄μ κ°μ κ³μ°νκΈ° μν΄μ μ°λ¦¬λ λ¬Έμμ΄ νΉμ μμ΄μ νλμ μ μλ‘ μΉννλ €κ³ νλ€. κ°λ¨νκ²λ μμ΄μ κ°μ λͺ¨λ λν μλ μλ€. ν΄μ ν¨μμ μ μμμ μ νν λ²μμ μΆλ ₯μ κ°μ ΈμΌ νλ€κ³ νμΌλκΉ μ λΉν ν° μ MμΌλ‘ λλ μ£Όμ. μ§μ! ν΄μ ν¨μκ° μμ±λμλ€. μ΄λ₯Ό μμμΌλ‘ νννλ©΄ μλμ κ°λ€.
ν΄μ ν¨μμ μ
λ ₯μΌλ‘ λ€μ΄μ¬ μ μλ λ¬Έμμ΄μ μ’
λ₯λ 무ννμ§λ§ μΆλ ₯ λ²μλ μ ν΄μ Έμλ€. λ€λ€ λΉλκΈ° μ§μ μ리μ λν΄μλ ν λ²μ―€ λ€μ΄λ΄€μ κ²μ΄λ€. κ·Έ μ리μ μνλ©΄ μλ‘ λ€λ₯Έ λ¬Έμμ΄μ΄λλΌλ λμΌν ν΄μ κ°μ κ°μ§ μ μλ€. μ΄λ₯Ό ν΄μ μΆ©λμ΄λΌκ³ νλλ°, μ’μ ν΄μ ν¨μλ μ΅λν μΆ©λμ΄ μ κ² μΌμ΄λμΌ νλ€. μμμ μ μν ν΄μ ν¨μλ μνλ²³μ μμλ§ λ°κΏλ μΆ©λμ΄ μΌμ΄λκΈ° λλ¬Έμ λμ ν΄μ ν¨μμ΄λ€. κ·Έλ¬λκΉ μ‘°κΈ λ κ°μ ν΄λ³΄μ. μ΄λ»κ² νλ©΄ μμκ° λ¬λΌμ‘μλ μΆλ ₯κ°λ λ¬λΌμ§κ² ν μ μμκΉ? 머리λ₯Ό ꡴리면 μμ΄μ κ° νλ§λ€ κ³ μ ν κ³μλ₯Ό λΆμ¬νλ©΄ λλ€λ μμ΄λμ΄λ₯Ό μκ°ν΄λ³Ό μ μλ€. κ°μ₯ λνμ μΈ λ°©λ²μ νμ λ²νΈμ ν΄λΉνλ λ§νΌ νΉμ ν μ«μλ₯Ό κ±°λμ κ³±ν΄μ κ³±ν΄μ€ λ€μ λνλ κ²μ΄ μλ€. μ΄λ₯Ό μμμΌλ‘ νννλ©΄ μλμ κ°λ€.
λ³΄ν΅ rκ³Ό Mμ μλ‘μμΈ μ«μλ‘ μ νλ κ²μ΄ μΌλ°μ μ΄λ€. μ°λ¦¬κ° μ§μ μ νλΌκ³ νλ©΄ νλ€ν
λκΉ rμ κ°μ 26λ³΄λ€ ν° μμμΈ 31λ‘ νκ³ Mμ κ°μ 1234567891(λλκ²λ μμμ΄λ€!!)λ‘ νμ. μ΄μ μ¬λ¬λΆμ΄ ν μΌμ μ μμ ν΅ν΄ μ£Όμ΄μ§ λ¬Έμμ΄μ ν΄μ κ°μ κ³μ°νλ κ²μ΄λ€. κ·Έλ¦¬κ³ μ΄ ν¨μλ κ°λ¨ν΄ 보μ¬λ μμ£Ό μ°μ΄λκΉ κΈ°μ΅ν΄λλ€κ° μ μ¨λ¨Ήλλ‘ νμ.
μ
λ ₯
첫 μ€μλ λ¬Έμμ΄μ κΈΈμ΄ Lμ΄ λ€μ΄μ¨λ€. λμ§Έ μ€μλ μλ¬Έ μλ¬Έμλ‘λ§ μ΄λ£¨μ΄μ§ λ¬Έμμ΄μ΄ λ€μ΄μ¨λ€. μ
λ ₯μΌλ‘ μ£Όμ΄μ§λ λ¬Έμμ΄μ λͺ¨λ μνλ²³ μλ¬Έμλ‘λ§ κ΅¬μ±λμ΄ μλ€.
μΆλ ₯
λ¬Έμ μμ μ£Όμ΄μ§ ν΄μν¨μμ μ
λ ₯μΌλ‘ μ£Όμ΄μ§ λ¬Έμμ΄μ μ¬μ©ν΄ κ³μ°ν ν΄μ κ°μ μ μλ‘ μΆλ ₯νλ€.
Small
(50μ )
Large
(50μ )
μμ
β
μ
λ ₯ 1
β
μΆλ ₯ 1
β
μ
λ ₯ 2
β
μΆλ ₯ 2
β
μ
λ ₯ 3
β
μΆλ ₯ 3
μμ± μ½λ 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
private static int M = 1_234_567_891;
public static void main(String[] args) throws IOException {
// 1. λ³μ μ μΈ λ° μ΄κΈ°ν
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int l = Integer.parseInt(br.readLine());
String s = br.readLine();
int i = 0;
int result = 0;
// 2. λ¬Έμμ΄ μν
for (char c : s.toCharArray()) {
int a = (int)c - 96;
result += a * (int)Math.pow(31, i++) % M;
}
// 3. μΆλ ₯
System.out.println(result);
}
}
|
- 50μ μ§λ¦¬ μ λ΅μ΄λ€.
result
κ°μ ꡬνλ κ³Όμ μμ μ€λ²νλ‘μ°κ° λ°μνλ κ²μΌλ‘ 보μΈλ€.
μμ± μ½λ 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
private static final int R = 31;
private static final int M = 1_234_567_891;
public static void main(String[] args) throws IOException {
// 1. λ³μ μ μΈ λ° μ΄κΈ°ν
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int l = Integer.parseInt(br.readLine());
String s = br.readLine();
long result = 0;
long pow = 1;
// 2. λ¬Έμμ΄ μν
for (int i = 0; i < l; i++) {
int val = s.charAt(i) - 'a' + 1;
result = (result + val * pow) % M;
pow = (pow * R) % M;
}
// 3. μΆλ ₯
System.out.println(result);
}
}
|
- ν΄λΉ λ¬Έμ λ₯Ό ν΄κ²°νλ €λ©΄ λͺ¨λλ¬ μ°μ°μ λΆλ°°λ²μΉμ μ΄ν΄ν΄μΌ νλ€.
- μ΅μ’
κ²°κ³Όμλ§ λͺ¨λλ¬ μ°μ°μ μ μ©ν΄λ λμ§λ§ μ€κ° κ³Όμ μμ κ° νμ λͺ¨λλ¬ μ°μ°μ μ μ©ν΄λ κ²°κ³Όλ λ¬λΌμ§μ§ μκ³ , μ€λ²νλ‘μ° λ°©μ§λ₯Ό μν΄μλ νμν μ²λ¦¬μ΄λ€.