Problem 💻

https://school.programmers.co.kr/learn/courses/30/lessons/120822

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 설명

문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.


제한사항
  • 1 ≤ my_string의 길이 ≤ 1,000

입출력 예my_stringreturn
"jaron" "noraj"
"bread" "daerb"




Solution 💡

 

class Solution {
   public String solution(String my_string) {
       StringBuilder answer = new StringBuilder();
       
       //문자열을 뒤에서부터 순회
       for (int i = my_string.length()-1; i >= 0; i--) {
           answer.append(my_string.charAt(i)); //문자 추가
       }
       return answer.toString(); //문자열로 변환 후 반환
   }
}

 

1. StringBuilder는 뭐지?

Java에서 문자열을 다루기 위한 클래스 중 하나로, 문자열을 수정하거나 조작할 때 주로 사용된다.

일반적인 String객체는 불변이기 때문에 문자열을 변경하려면 새로운 객체를 생성해야 한다.

하지만, StringBuilder는 가변적이어서 문자영을 효율적으로 수정할 수 있다.

 

  1.1 StringBuilder는 어떤 특징이 있을까?

- 가변성 : String 객체는 한 번 생성되면 변경할 수 없다. 반면, StringBuilder는 내부의 문자열을 수정할 수 있다. 그래서 메모리 낭비를 줄이고 성능을 향상 시킨다. 

- 효율성 : 문자열을 반복해서 추가하거나 삭제해야 할 때, StringBuilder는 String보다 빠르다.

- 멀티스레드 환경에서는 StringBuilder 대신 StringBuffer를 사용한다. StringBuffer는 스레드 안전을 보장하지만, StringBuilder는 더 빠르다.

 

  1.2 StringBuilder의 사용법

1.2.1 생성

StringBuilder sb = new StringBuilder("Hello");

 

1.2.2 문자열 추가(append)

sb.append("World");
System.out.println(sb); //출력: Hello World

 

1.2.3 문자열 삽입(insert)

sb.insert(6, "Java ");
System.out.println(sb); //출력: Hello Java World

 

 

1.2.4 문자열 삭제(delete)

sb.delete(6, 11);
System.out.println(sb); //출력:Hello World

 

 

1.2.5 문자열 뒤집기(reverse)

sb.reverse();
System.out.println(sb); //출력: dlroW olleH

 

 

1.2.6 문자열 길이 확인(length)

	System.out.println(sb.length()); //출력: 11

 

 

1.2.7 문자열을 String으로 변환(toString)

String result = sb.toString();
System.out.println(result); //출력: dlroW olleH

 

 


더 간단한 방법.

class Solution {
   public String solution(String my_string) {
       return new StringBuilder(my_string).reverse().toString();
   }
}

 

+ Recent posts