본문 바로가기

프로그래머스/lv0

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

문제) 문자 반복 출력하기

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

나의 풀이
class Solution {
    public String solution(String my_string, int n) {
        String answer = "";
        String s = "";
        
        String[] arr = my_string.split("");
        
        for(int i = 0; i<arr.length; i++) {
            s = arr[i].repeat(n);
            answer += s;
        }
        
        return answer;
    }
}

 

my_string을 문자 단위로 쪼개어 배열로 만든 후, 배열의 각 문자를 반복한 결과를 문자열 s에 할당해주었다.

그리고 각 문자를 n번 반복한 결과를 기존의 answer 문자열에 추가했다.

 

* repeat() 메서드는 매개변수로 전달된 횟수만큼 문자열을 반복하여 새로운 문자열을 생성해준다. 단, Java11 이상에서만 사용이 가능하다.

 

다른 풀이

 

StringBuilder 이용

class Solution {
    public String solution(String my_string, int n) {
        StringBuilder answer = new StringBuilder();
        
        for (char c : my_string.toCharArray()) {
            answer.append(String.valueOf(c).repeat(n));
        }

        return answer.toString();
    }
}

 

toCharArray() 메서드는 String 클래스에서 제공하는 메서드 중 하나로, 문자열을 문자 배열(char[])로 변환해준다.

 

 

Stirng은 생성하면 내용 변경이 불가능하기 때문에, 문자열을 연결할 때마다 새로운 문자열을 생성하기 때문에 효율성이 떨어진다.

이와 달리 StringBuilder는 가변 객체다. 문자열을 조작할 때마다 새로운 객체를 생성하는 것이 아니라, 기존 객체를 변경하므로 메모리 사용이 효율적이다.

 

append() 메서드를 통해 문자열 또는 문자를 StringBuilder에 추가할 수 있다.

toString() 메서드를 통해 StringBuilder를 문자열로 변환할 수 있다.