File tree 4 files changed +66
-0
lines changed
4 files changed +66
-0
lines changed Original file line number Diff line number Diff line change 28
28
| 01 | | [ Baekjoon-14425 λ¬Έμμ΄ μ§ν©] ( ./src/String/P14425 ) | |
29
29
| 02 | | [ Baekjoon-14426 μ λμ¬ μ°ΎκΈ°] ( ./src/String/P14426 ) | |
30
30
| 03 | | [ Baekjoon-1786 μ°ΎκΈ°] ( ./src/String/P1786 ) | KMP |
31
+ | 04 | | [ Baekjoon-1305 κ΄κ³ ] ( ./src/String/P1305 ) | KMP |
31
32
32
33
## Data Structure
33
34
Original file line number Diff line number Diff line change
1
+ package String .P1305 ;
2
+
3
+ import java .io .*;
4
+
5
+ public class Main {
6
+ public static void main (String [] args ) throws Exception {
7
+ System .setIn (new FileInputStream ("src/String/P1305/input.txt" ));
8
+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
9
+
10
+ int L = Integer .parseInt (br .readLine ());
11
+ String s = br .readLine ();
12
+
13
+ int [] pattern = makePk (s );
14
+ System .out .println (L - pattern [s .length ()-1 ]);
15
+ }
16
+
17
+ private static int [] makePk (String s ) {
18
+ int [] Pk = new int [s .length ()];
19
+ int k = 0 ;
20
+ for (int i = 1 ; i < s .length (); i ++) {
21
+ while (k > 0 && s .charAt (i ) != s .charAt (k ))
22
+ k = Pk [k -1 ];
23
+ if (s .charAt (i ) == s .charAt (k ))
24
+ Pk [i ] = ++k ;
25
+ }
26
+ return Pk ;
27
+ }
28
+ }
Original file line number Diff line number Diff line change
1
+ ## [ baekjoon-1305] κ΄κ³
2
+
3
+ ![ image] ( https://user-images.githubusercontent.com/22045163/103282462-317f5b80-4a19-11eb-8d44-e6234669a85e.png )
4
+
5
+ ### νμ΄ κ³Όμ
6
+
7
+ λ¬Έμ λ₯Ό λΆμνκΈ°λ₯Ό, μμ νμλ [ λ¬Έμμ΄ κ²μ] ( ../P1786 ) λ¬Έμ μμλ
8
+ μ°ΎμΌλ €λ λ¬Έμμ΄ ν¨ν΄μ΄ μ£Όμ΄μ§κ³ , κ·Έ ν¨ν΄μ ν΄λΉνλ λ¬Έμμ΄μ μ°ΎμΌλ €λκ² κ³Όμ μλ€.
9
+ νμ§λ§ μ΄λ² λ¬Έμ μμλ λ°λλ‘ ** νΉμ ν¨ν΄μ΄ λ°λ³΅λλ λ¬Έμμ΄μμ ν¨ν΄μ μ°Ύλ κ²μ΄ κ³Όμ ** μλ€.
10
+
11
+ μκ° ν¨μ¨μ μκ°ν΄λ³΄μμ λ, ` L ` μ μ΅λ ν¬κΈ°κ° 100λ§μ΄λ―λ‘ μ£Όμ΄μ§ λ¬Έμμ΄μ
12
+ λ¨ ν λ²λ§ ` forλ¬Έ ` μΌλ‘ νμ΄μ λ΅μ λμΆν΄μΌ νλ€. κ·Έλ¬μ λ λ€μκ³Ό κ°μ μκ°μ΄ μ΄μ΄μ‘λ€.
13
+
14
+ ![ image] ( https://user-images.githubusercontent.com/22045163/103283797-dc454900-4a1c-11eb-98b5-4869db32bf2d.png )
15
+
16
+ μμ κ°μ λ°©μμΌλ‘ ` νμ¬ κ²μ¬νλ €λ λ¬Έμμ΄ κΈΈμ΄ ` μμ ` μ λμ¬μ μ λ―Έμ¬κ° κ°μ ꡬκ°μ κΈΈμ΄ ` λ₯Ό
17
+ λΉΌμ£Όλ©΄ λ°λ³΅λλ λ¬Έμμ΄ ν¨ν΄ λ° κ·Έ ν¨ν΄μ κΈΈμ΄λ₯Ό λμΆν μ μλ€.
18
+
19
+ μ΄ λ, ν¨ν΄μ΄ 3λ² μ΄μ λ°λ³΅λλ κ²½μ°λ?
20
+
21
+ ![ image] ( https://user-images.githubusercontent.com/22045163/103283950-3e9e4980-4a1d-11eb-930a-23423f59290c.png )
22
+
23
+ λ§μ°¬κ°μ§λ‘ μμ κ°μ΄ κ°μ λ°©μμΌλ‘ ꡬν μ μλ€.
24
+
25
+ ** KMP μκ³ λ¦¬μ¦** μμ ` makePk ` ν¨μλ λ¬Έμμ΄μμ μ λμ¬μ μ λ―Έμ¬κ° κ°μ μ μλ
26
+ μ΅λμ κΈΈμ΄λ₯Ό λ°°μ΄μ μ μ₯νλ€. μ΄ ν¨μλ₯Ό ν΅ν΄ λμΆλλ κ°μ μ΄μ©νλ©΄ μνλ λ΅μ μ°Ύμ μ μλ€.
Original file line number Diff line number Diff line change
1
+ 5
2
+ aaaaa
3
+ output 1
4
+
5
+ 11
6
+ aabaaabaaab
7
+ output 4
8
+
9
+ 6
10
+ aabaaa
11
+ output 4
You canβt perform that action at this time.
0 commit comments