코린이의 소소한 공부노트

[LeetCode/Easy] 2309. Greatest English Letter in Upper and Lower Case 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 2309. Greatest English Letter in Upper and Lower Case

무지맘 2023. 6. 26. 11:52

1. Input

1) String s

 

2. Output

1) s에 있는 알파벳 중 대소문자가 모두 있는 알파벳을 대문자로 반환

- 여러 개라면 그 중 가장 큰(순서상 뒤에 나오는) 알파벳을 반환

2) 조건을 만족하는 알파벳이 없다면 빈 문자열을 반환

 

3. Constraint

1) 1 <= s.length <= 1000

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

 

4. Example

Input: s = "arRAzFif" -> Output: "R"

설명: 대소문자가 모두 나타나는 알파벳은 A, R이다. 이 중 더 큰 것은 R이므로 이를 반환한다.

 

5. Code

1) 첫 코드(2023/06/26)

class Solution {
    public String greatestLetter(String s) {
        HashSet<Character> upper = new HashSet<>();
        HashSet<Character> lower = new HashSet<>();
        for(int i=0 ; i<s.length() ; i++){
            char c = s.charAt(i);
            if(Character.isLowerCase(c)) lower.add(c);
            else upper.add(c);
        }
        List<Character> list = new ArrayList<>();
        for(char c : upper)
            if(lower.contains(Character.toLowerCase(c)))
                list.add(c);
        list.sort(Comparator.reverseOrder());
        if(list.size()==0)
            return "";
        else
            return String.valueOf(list.get(0));
    }  
}

- 37%, 94%