Skip to content

Commit 354762d

Browse files
committed
문자열에서 두번째로 큰 수 찾기
1 parent 038b67f commit 354762d

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

SecondLargestDigitString.java

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import java.util.*;
2+
3+
4+
// my solution_USE list
5+
public class SecondLargestDigitString {
6+
public int secondHighest(String s) {
7+
StringBuffer str = new StringBuffer(s);
8+
List<Integer> list = new ArrayList<>();
9+
char tmp[] = new char[str.length()];
10+
11+
str.getChars(0,str.length(),tmp,0);
12+
13+
for (int i = 0; i < str.length(); i++) {
14+
if (tmp[i] >= '0' && tmp[i] <= '9')
15+
list.add(tmp[i]-'0');
16+
}
17+
18+
List<Integer> resultList = new ArrayList<>();
19+
list.sort(Comparator.reverseOrder());
20+
for(int i = 0; i<list.size(); i++){
21+
if(!resultList.contains(list.get(i)))
22+
resultList.add(list.get(i));
23+
}
24+
25+
if(resultList.size() <2)
26+
return -1;
27+
return resultList.get(1);
28+
}
29+
30+
}
31+
32+
/* best solution_USE TREESET
33+
class Solution {
34+
public int secondHighest(String s) {
35+
if (s.length() == 1 || s == null)
36+
return -1;
37+
TreeSet < Integer > set = new TreeSet < Integer > ();
38+
for (int i = 0; i < s.length(); i++) {
39+
if (Character.isDigit(s.charAt(i)))
40+
set.add(Integer.parseInt(String.valueOf(s.charAt(i))));
41+
}
42+
43+
if (set.size() > 1) {
44+
set.pollLast();
45+
return set.pollLast();
46+
} else return -1;
47+
48+
}
49+
}
50+
*/

0 commit comments

Comments
 (0)