문제 난이도 : Easy


문제 유형 : Data Structures - String


문제 설명 간략 :

String s가 주어지고 words의 순서를 반대로 출력하라.


제약사항

  • 1 <= s.length <= 10^4
  • s contains English letters (upper-case and lower-case), digits, and spaces ‘ ‘.
  • There is at least one word in s.



자바 풀이

 class Solution {
    public String reverseWords(String s) {

        List<String> words = new ArrayList<String>();

        StringBuilder returnSb = new StringBuilder();
        StringBuilder sb = new StringBuilder();

        int wordLength = 0;
        for(int i = 0; i < s.length(); i++) {
            if(s.charAt(i) != ' ') {
                sb.append(s.charAt(i));
            }else{
                words.add(sb.toString());
                sb = new StringBuilder();
            }
        }

        words.add(sb.toString());


        for(int k = words.size()-1; k >= 0; k--) {
            if(words.get(k).length() > 0) {
                returnSb.append(words.get(k));
                returnSb.append(" ");
            }
        }

        returnSb.deleteCharAt(returnSb.length()-1);

        return returnSb.toString();
    }
}



출처

해커랭크 문제