본문 바로가기
Java/프로그래머스

[프로그래머스/JAVA] 문자 반복 출력하기

by 녹녹1 2023. 9. 12.

문제 설명

문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.


제한사항
  • 2 ≤ my_string 길이 ≤ 5
  • 2 ≤ n ≤ 10
  • "my_string"은 영어 대소문자로 이루어져 있습니다.


입출력 예 설명

입출력 예 #1

  • "hello"의 각 문자를 세 번씩 반복한 "hhheeellllllooo"를 return 합니다.

내 코드

- 이중 반복문을 사용하고 charAt()메소드를 사용해서 문자열의 문자를 하나씩 비교하며 해결

class Solution {
    public String solution(String my_string, int n) {
        String answer = "";
        for(int i = 0; i < my_string.length(); i++){
            for(int j = 0; j < n; j++){
                answer += my_string.charAt(i);
            }
        }
        return answer;
    }
}

 

다른 사람 코드

StringBuilder를 사용해서 객체를 생성

toCharArray()를 사용해서 문자열을 Char 배열에 담음 

repeat()을 사용해서 StringBuilder객체에 더함

class Solution {
    public String solution(String my_string, int n) {
        StringBuilder sb = new StringBuilder();
        for(char c : my_string.toCharArray()){
            sb.append((c + "").repeat(n));
        }
        return sb.toString();
    }
}

 

repeat()

repeat()은 이름만 들어도 용도가 짐작이 되는 메소드인데 자바 11부터 새롭게 추가된 String 메소드라고 한다.

String 문자열을 파라미터의 주어진 횟수만큼 반복을 시킨다.

 

 

StringBuilder

StringBuilder의 경우 문자열을 동적으로 처리하는 데 사용되는 클래스이다.

 

기존 문자열은 불변성(immutable)을 가지므로 문자열을 변경하거나 수정할 때마다 새로운 문자열 객체가 생성되어 메모리를 낭비할 수 있지만 StringBuilder는 가변성(mutable)을 가지며 문자열을 직접 수정할 수 있는 기능을 제공한다.

 

이에 문자열을 더 효율적으로 조작하고 수정할 수 있다고 한다.

 


 

StringBuilder에 대해 수업시간에 배웠기는 하지만 잘 몰라서 거의 사용하지 않았다. 이런 장점들을 알았으니 앞으로는 의식적으로 사용해보며 연습해보아야겠다. 

댓글