포스트

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

문제

문제설명

문자열 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 합니다.

풀이

풀이 방식

  1. 각 문자열마다 append로 문자를 추가할 수 있게 StringBuilder를 사용한다.
  2. 각 문자열을 사용할 수 있게 반복문을 사용한다.
  3. 각 문자열을 n번 만큼 반복하여 append 한다.

제출 코드

1
2
3
4
5
6
7
8
9
10
11
import java.util.*;

class Solution {
    public String solution(String my_string, int n) {
        StringBuilder answer = new StringBuilder();
        for (int i = 0; i < my_string.length(); i++){
            answer.append(Character.toString(my_string.charAt(i)).repeat(n));
        }
        return answer.toString();
    }
}

다른 사람 풀이

  • 뭔가 내 풀이가 복잡해 보여서 참고해 볼 만한 코드를 찾아봤다.
1
2
3
4
5
6
7
8
9
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();
    }
}
  • 향상된 for문을 사용하였고 문자열을 char형 배열로 바꿔서 반환하는 메서드인 toCharArray()를 사용하였다.
  • 각 문자를 c + ""로 문자열로 다시 반환하여 repeat()을 사용해 n번만큼 문자열에 추가해 주었다.
  • 이 코드를 참고하면서 toCharArraych + ""도 활용해 봐야겠다는 생각이 들었다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.