코린이의 소소한 공부노트

[LeetCode/Easy] 1796. Second Largest Digit in a String 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1796. Second Largest Digit in a String

무지맘 2023. 4. 21. 10:37

1. Input

1) String s

 

2. Output

1) s에 있는 숫자들 중 2번째로 큰 수를 반환

2) 2번째로 큰 숫자가 없다면 -1을 반환

 

3. Constraint

1) 1 <= s.length <= 500

2) s는 영어 소문자와 숫자로만 이루어져 있다.

 

4. Example

Input: s = "dfa12321afd" -> Output: 2

Input: s = "abc1111" -> Output: -1

 

5. Code

1) 첫 코드(2023/04/21)

ArrayList<Character> list = new ArrayList<>();
for(int i=0 ; i<s.length() ; i++){
    char c = s.charAt(i);
    if('0'<=c && c<='9' && !list.contains(c))
        list.add(c);
}
int answer;
if(list.size()<2)
    answer = -1;
else{
    list.sort(Comparator.naturalOrder());
    answer = list.get(list.size()-2)-'0';
}
return answer;