거북이-https://velog.io/@violet_evgadn 이전완료

문자열 뒤집기 본문

코딩 테스트 시 알면 좋은 것들

문자열 뒤집기

VioletEvgadn 2023. 1. 3. 22:15

코딩 테스트 시 필요한 이유

코딩 테스트 때 무조건 나오는 문제를 하나 고르라면 "문자열 문제"일 것이다.문자열 문제를 풀다 보면 마지막 Index부터 알고리즘 짜는 게 쉬워 역순으로 답을 구하고 구해진 답을 거꾸로 뒤집는 과정이 필요한 문제들이 몇 개 있었다.

 

이때 항상 "s.reverse()"라는 명령을 쓴다고 생각하고 사용하지만 Java에는 이런 명령이 존재하지 않는다.그래서 문자열을 뒤집을 때마다 항상 구글링을 해서 방법을 찾았는데, 문자열 문제는 항상 나오는 문제니 이번 기회에 정리해보기로 했다.


StringBuilder 사용

String str = "sample";
StringBuilder sb = new StringBuilder(str);
String reverse = sb.reverse().toString();

System.out.println("sample 뒤집기 : "+reverse);

아래 설명할 배열을 활용하는 방법이나 List를 사용하는 방법은 사실 큰 활용도는 없다.

이런 방법으로 문자열을 뒤집을 바에는 더 직관적이고 외우기도 쉬운 for문을 통해 Index 역순으로 글자를 불러오는 방법이 더 좋기 때문이다.

 

따라서 아래 2개는 이런 코드가 있구나 정도로만 알고 StringBuilder 사용 방법 꼭 외워두자.


char 배열로 변환하여 뒤집기

String str = "sample";
char[] strArr = str.toCharArray();

char[] strReverse = new char[strArr.length];
for(int i =0;i<strArr.length;i++) strReverse[i] = strArr[strArr.length-1-i];

String reverse = new String(strReverse);
System.out.println("sample 뒤집기 : "+reverse);


List로 변환 후 Collections.reverse 사용

String str = "sample";
char[] strArr = str.toCharArray();
List<Character> list = new ArrayList<>();
for(char c : strArr){
    list.add(c);
}

Collections.reverse(list);

StringBuilder sb = new StringBuilder();
for(char c : list){
    sb.append(c);
}

System.out.println("sample 뒤집기 : "+sb.toString());

'코딩 테스트 시 알면 좋은 것들' 카테고리의 다른 글

Char 배열 처리  (0) 2023.01.09
조합과 순열  (0) 2023.01.03
Compare 관련 메소드  (0) 2022.12.31
log & 거듭제곱  (0) 2022.12.30
N 진법  (0) 2022.12.30
Comments