본문 바로가기
Beakjoon&프로그래머스/Java

[LeetCode/Java] Reverse Vowels of a String

by 현장 2025. 12. 19.

-Code

class Solution {
    static char[] vowels = {'a', 'e', 'i', 'o', 'u'};

    public String reverseVowels(String s) {
        List<Character> sVowels = new ArrayList<>();

        for (char c : s.toCharArray()) {
            if (checkVowel(c)) {
                sVowels.add(c);
            }
        }

        StringBuilder sb = new StringBuilder();
        int idx = sVowels.size() - 1;

        for (char c : s.toCharArray()) {
            if (checkVowel(c)) {
                sb.append(sVowels.get(idx));
                idx--;
            } else {
                sb.append(c);
            }
        }

        return sb.toString();
    }

    private static boolean checkVowel(char c) {
        int ch = Character.toLowerCase(c);
        for (char vowel :vowels) {
            if (ch == vowel) return true;
        }
        return false;
    }
}