[leetcode] Reverse Prefix of Word

·2024년 5월 1일

코딩

목록 보기
45/45

문제

  • 문제 링크
  • 문자열 word와 문자 ch가 주어진다. word를 앞에서부터 순회하다가 ch를 처음 만나면, 맨앞과 ch를 포함한 인덱스까지 뒤집어야 한다. wordch가 포함되어 있지 않다면 word 그대로 반환한다. 만약 word="abcdef" ch='c'라면, 반환되는 문자열은 "cbadef"이다.
  • 제약 조건
    • word 문자열 길이: 1 <= word.length <= 250

풀이

풀기 전

  • 문제 그대로 word 문자열 순회하다가 ch를 만나면 문자열을 뒤집고 반환하면 된다.

코드

class Solution {
    public String reversePrefix(String word, char ch) {
        StringBuilder sb = new StringBuilder();
        for (int i=0; i<word.length(); i++) {
            char c = word.charAt(i);
            sb.append(c);
            
            // ch를 만나면 앞에 추가한 문자들을 뒤집고, 뒤에 남은 문자들은 그대로 붙인다.
            if (ch == c) {
                sb.reverse();
                sb.append(word.substring(i+1));
                break;
            }
        }
        return sb.toString();
    }
}

푼 후

  • 오랜만에 보는 쉬운 문제다! 실력 기르려고 문제 푸는 거긴 하지만.. 그래도 가끔 쉬운 문제가 나와야 쉬어갈 수 있는 거 같다.
  • 문자열을 한 번 순회하기 때문에 시간 복잡도는 O(word.length)이다. StringBuilder를 만들고 word만큼 사용하기 때문에 공간 복잡도는 O(word.length)이다.
profile
개발 일지

0개의 댓글