문제
풀이
처음에 문자를 반복하는 것이기 때문에 이중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();
}
}
'하루하루 > 프로그래머스 문제풀이' 카테고리의 다른 글
[Lv.0 - Java] 120908 - 문자열안에 문자열 (0) | 2023.11.19 |
---|---|
[Lv.0 - Java] 120813 - 짝수는 싫어요 (1) | 2023.11.19 |
[Lv.0 - Java] 120818 - 옷가게 할인 받기 (1) | 2023.11.13 |
[Lv.0 - Java] 120909 - 제곱수 판별하기 (0) | 2023.11.13 |
[Lv.0 - Java] 120826 - 특정 문자 제거하기 (0) | 2023.11.13 |