문제) 문자 반복 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/120825
나의 풀이
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를 문자열로 변환할 수 있다.
'프로그래머스 > lv0' 카테고리의 다른 글
[프로그래머스/Java] 문자열 뒤집기 (0) | 2023.11.17 |
---|---|
[프로그래머스/Java] 순서쌍의 개수 (0) | 2023.11.15 |
[프로그래머스/Java] 배열의 유사도 (0) | 2023.11.15 |
[프로그래머스/Java] 자릿수 더하기 (0) | 2023.11.15 |
[프로그래머스/Java] 삼각형의 완성조건 (1) (0) | 2023.11.14 |