문제
- 문제 링크
- 문자열
word와 문자 ch가 주어진다. word를 앞에서부터 순회하다가 ch를 처음 만나면, 맨앞과 ch를 포함한 인덱스까지 뒤집어야 한다. word에 ch가 포함되어 있지 않다면 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);
if (ch == c) {
sb.reverse();
sb.append(word.substring(i+1));
break;
}
}
return sb.toString();
}
}
푼 후
- 오랜만에 보는 쉬운 문제다! 실력 기르려고 문제 푸는 거긴 하지만.. 그래도 가끔 쉬운 문제가 나와야 쉬어갈 수 있는 거 같다.
- 문자열을 한 번 순회하기 때문에
시간 복잡도는 O(word.length)이다. StringBuilder를 만들고 word만큼 사용하기 때문에 공간 복잡도는 O(word.length)이다.