문제 설명
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 2 ≤ my_string 길이 ≤ 5
- 2 ≤ n ≤ 10
- "my_string"은 영어 대소문자로 이루어져 있습니다.

입출력 예 설명
입출력 예 #1
- "hello"의 각 문자를 세 번씩 반복한 "hhheeellllllooo"를 return 합니다.
내 코드
- 이중 반복문을 사용하고 charAt()메소드를 사용해서 문자열의 문자를 하나씩 비교하며 해결
class Solution {
public String solution(String my_string, int n) {
String answer = "";
for(int i = 0; i < my_string.length(); i++){
for(int j = 0; j < n; j++){
answer += my_string.charAt(i);
}
}
return answer;
}
}
다른 사람 코드
StringBuilder를 사용해서 객체를 생성
toCharArray()를 사용해서 문자열을 Char 배열에 담음
repeat()을 사용해서 StringBuilder객체에 더함
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();
}
}
repeat()
repeat()은 이름만 들어도 용도가 짐작이 되는 메소드인데 자바 11부터 새롭게 추가된 String 메소드라고 한다.
String 문자열을 파라미터의 주어진 횟수만큼 반복을 시킨다.
StringBuilder
StringBuilder의 경우 문자열을 동적으로 처리하는 데 사용되는 클래스이다.
기존 문자열은 불변성(immutable)을 가지므로 문자열을 변경하거나 수정할 때마다 새로운 문자열 객체가 생성되어 메모리를 낭비할 수 있지만 StringBuilder는 가변성(mutable)을 가지며 문자열을 직접 수정할 수 있는 기능을 제공한다.
이에 문자열을 더 효율적으로 조작하고 수정할 수 있다고 한다.
StringBuilder에 대해 수업시간에 배웠기는 하지만 잘 몰라서 거의 사용하지 않았다. 이런 장점들을 알았으니 앞으로는 의식적으로 사용해보며 연습해보아야겠다.
'Java > 프로그래머스' 카테고리의 다른 글
[프로그래머스/JAVA] 가운데 글자 가져오기 (2) | 2023.09.15 |
---|---|
[프로그래머스/JAVA] 핸드폰 번호 가리기 (2) | 2023.09.14 |
[프로그래머스/JAVA] 정수 제곱근 판별 (2) | 2023.09.13 |
[프로그래머스/JAVA] 배열의 유사도 (2) | 2023.09.12 |
[프로그래머스/JAVA] 조건에 맞게 수열 변환하기 1 (1) | 2023.09.11 |
댓글