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

Walter Mitty·2022년 10월 27일
2

Algorithm

목록 보기
19/29

문제 설명

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


제한사항

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

입출력 예

my_stringnresult
"hello"3"hhheeellllllooo"

입출력 예 설명
입출력 예 #1

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

내 풀이

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

처음에 생각했던게 String 타입의 빈 객체를 생성해서, my_string 배열 만큼 돌게되는데, 이때 str에 특정 인덱스 위치의 문자를 반환하는 .charAt함수를 이용해서 my_string의 i번째 문자를 n번(i가 0부터니까 n-1)만큼 반복시켜서 str에 더해주었다.


.split과 .repeat를 활용한 풀이

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

String 타입 arr 배열에 my_string을 .split을 이용하여 한 글자씩 나눠 담아준다.
그리고 나서 String 객체 str에 arr[i]로 한글자씩 빼와서 .repeat(반복횟수)로 담아준다.


StringBuilder .toCharArray 와 .appent, .repeat를 활용한 풀이.

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();
    }
}

StringBuilder type의 sb 객체를 하나 만들어준다.
toCharArray 는 String(문자열)을 char형 배열로 바꿔준다.
.append 함수를 이용해서 문자열을 추가해준다
.toString을 이용해 String type으로 변환해준다.

참고자료 StringBuilder

0개의 댓글