forked from sowon-dev/AlgorithmStudy_Java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSeparatetheNumbers.java
More file actions
55 lines (47 loc) ยท 1.78 KB
/
SeparatetheNumbers.java
File metadata and controls
55 lines (47 loc) ยท 1.78 KB
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package hackerrank;
import java.util.Arrays;
public class SeparatetheNumbers {
static void separateNumbers(String s) {
//์๋ ์ ์ฝ์ฌํญ์ ์ถฉ์กฑํ๋ฉด YES์ ๊ฐ์ฅ ์์ ์ซ์๋ฅผ ๋ฆฌํด, ์ถฉ์กฑํ์ง์์ผ๋ฉด NO๋ฅผ ๋ฆฌํดํ๋ค.
//1. ๋ค์์์๋ ์ด์ ์์๋ณด๋ค ํญ์ 1์ด ๋ ์ปค์ผํ๋ค.
//2. ์์๋ 0๋ก ์์ํด์๋ ์ ๋๋ค.
//3. s์์ ์ํ์ค๋ฅผ ์ฌ๋ฐฐ์ดํ ์ ์๋ค.
String subStr = "";
boolean isVaild = false;
//subString์ 0๋ถํฐ ์์ํ๋๊น i๋ 1๋ถํฐ ์์ํ๊ณ s ๊ธธ์ด์ ๋ฐ์ ๋์ ์ ์๋ค.
for (int i = 1; i <= s.length() / 2; i++) {
subStr = s.substring(0, i);
Long num = Long.parseLong(subStr);
//0๋ถํฐ i๊น์ง ์๋ฅธ String์ vaildStr๋ณ์์ ๋ด๊ณ vaildStr๋ฅผ 1์ฉ์ฆ๊ฐ์ํจ๊ฐ์ ๋์ ํฉํ๋ค.
String vaildStr = subStr;
while (vaildStr.length() < s.length()) {
vaildStr += Long.toString(++num);
}
//๋์ ํฉํ vaildStr๊ณผ s๋ฅผ ๋น๊ตํ์ฌ ์ผ์นํ๋ฉด isVaild= true๋ฐ๊ฟ์ฃผ๊ณ
// ๊ฐ์ฅ ์์ ์ซ์๋ฅผ ๋ฆฌํดํด์ผํ๊ธฐ๋๋ฌธ์ for๋ฌธ์ ๋ฐ๋ก ์ข
๋ฃํ๋ค.
if (s.equals(vaildStr)) {
isVaild = true;
break;
}
}
System.out.println(isVaild ? "YES " + subStr : "NO");
}
public static void main(String[] args) {
/*
separateNumbers("1234");
System.out.print("ans: YES 1\n");
separateNumbers("91011");
System.out.print("ans: YES 9\n");
*/
separateNumbers("99100");
System.out.print("ans: YES 99\n");
separateNumbers("101103");
System.out.print("ans: NO \n");
separateNumbers("010203");
System.out.print("ans: NO \n");
separateNumbers("13");
System.out.print("ans: NO \n");
separateNumbers("1");
System.out.print("ans: NO \n");
}
}