본문 바로가기
하루하루/프로그래머스 문제풀이

[Lv.0 - Java] 120825. 문자 반복 출력하기

by 키튼햄 2023. 11. 15.

문제

 

 

 

풀이

처음에 문자를 반복하는 것이기 때문에 이중for문과 repeat 두 개가 생각이 났다.

그중 이중 for문을 먼저 사용해서 코드를 만들어 보았다.

1. StringBuilder를 사용하여 문자열을 구성했다. StringBuilder는 매번 새 개체를 만들지 않고도 시퀀스 내용을 수정할 수 있다는 장점이 있다.

2. for문을 이용하여 각 문자에 대해 반복하여 추가하였다. my_string 문자열을 charAt()메소드를 이용해 각 문자들을 분리했고 그 문자를 다시 for문을 사용해 문제에서 주어진 n번만큼 반복해 StringBuilder에 추가하도록했다.

3. 그리고 최종적으로 문자열을 반환하였다.

 

두번째로 repeat을 사용했는데 이 경우에는 이중for문을 사용하는 것보다 더 짧고 간단하게 표현할 수 있었던것같다.

1. 두번째는 for문도 확장된 for문을 사용하였다. my_string.toCharArray()를 사용하여 입력문자의 각 문자를 나누어 반복했다.

2. 그 다음은 repeat을 사용해 StringBuilder에 문자를 추가할 생각이었지만 char 타입은 repeat() 메소드를 사용하지 못하므로 c+"" 를 사용해 char c를 String 타입(일반문자열)으로 변환한 후 repeat()을 사용했다.

 

 

 

 

 

코드

풀이1

class Solution {
    public String solution(String my_string, int n) {

        //길이가 n배인 StringBuilder를 생성하여 문자열을 구성
        StringBuilder answer = new StringBuilder(my_string.length()*n);

        //문자열의 각 문자에 대해 반복하여 추가
        for(int i=0; i<my_string.length(); i++){
            char my = my_string.charAt(i);
            
            //문자 n번 반복하고 StringBuilder에 추가
            for(int j=0; j<n; j++){
                answer.append(my);
            }
        }
        
        //StringBuilder를 일반 문자열로 변환하고 최종반환
        return answer.toString();
    }
}

 

 

풀이2

class Solution {
    public String solution(String my_string, int n) {
        
        //결과를 저장하기 위한 StringBuilder
        StringBuilder answer = new StringBuilder();
        
        //문자열의 각 문자를 n번 반복하고 StirngBuilder에 추가
        for(char c : my_string.toCharArray()){
            //각 문자를 문자열로 변환하고 n번 반복하여 StringBuilder에 추가
            answer.append((c + "").repeat(n));
        }
        
        //StringBuilder를 일반 문자열로 변환하고 최종반환
        return answer.toString();
    }
}