2000. Reverse Prefix of Word

양성준·2025년 4월 6일

코딩테스트

목록 보기
10/102

문제

https://leetcode.com/problems/reverse-prefix-of-word/description/

풀이

처음 풀이 (indexOf + two pointers)

class Solution {
    public String reversePrefix(String word, char ch) {
        char[] arr = word.toCharArray();
        int lt = 0;
        int rt = word.indexOf(ch);
        if(rt == -1) { // target word가 없다면 (indexOf의 반환값이 -1이라면)
            return word;
        }

        while(lt < rt) {
            char tmp = arr[lt];
            arr[lt] = arr[rt];
            arr[rt] = tmp;
            lt++;
            rt--;
        }
        return new String(arr);
    }
}
  • target word가 존재한다면, 해당 첫 target word 인덱스까지의 문자열을 뒤집고, 나머지는 그대로 냅두는 문제
  • String.indexOf(char 또는 String) - 첫번째 target의 index, 없다면 -1 반환
    • (참고) String.indexOf(target,Integer) - Integer번 index부터 시작하여 target을 찾음
  • 처음부터 target index 까지의 문자열을 뒤집어주면 끝!
  • 시간 복잡도 O(N), 공간 복잡도 O(N)
  • String 뒤집기 같은 경우엔, 전체를 뒤집는게 아닌 이상 StringBuilder를 쓰기가 어려운 것 같음
    (StringBuilder는 문자열을 처음부터 더해가기 때문에 일부만 뒤집기가 힘듦)
    -> 그냥 별도의 배열 만들어서 쓰는게 간편하다!
profile
백엔드 개발자

0개의 댓글