문자 반복 출력하기 Lv. 0

박영준·2023년 4월 21일
0

코딩테스트

목록 보기
58/300

문제 설명

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

class Solution {
    public String solution(String my_string, int n) {
        String answer = "";
        return answer;
    }
}

제한 사항

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

입출력 예

입출력 예 설명

  • 입출력 예 #1
    • "hello"의 각 문자를 세 번씩 반복한 "hhheeellllllooo"를 return 합니다.

해결법

방법 1

class Solution {
    public String solution(String my_string, int n) {
        String answer = "";
        
        for(int i = 0; i < my_string.length(); i++) {		// 문자열 my_string 을 반복한다
            for (int j = 0; j < n; j++) {		// 문자열 내의 각 문자를 n번 만큼 반복한다 
                answer += my_string.charAt(i);		// 각
            }
        }
        
        return answer;
    }
}
  • 중첩 for 문 사용

    • 문자 1개를 n 번 반복
      • '문자 1개' -> 바깥쪽 for문
      • 'n 번 반복' -> 안쪽 for문
    • j < n
      • 원래 가지는 문자를 제외하고 반복을 더해야하므로, <=이 아닌 < 연산자를 사용
  • charAt(i) : String 타입을 Char 타입으로 변환

    • 문자열이 아닌 각 문자에 특정 조건(n번 만큼 반복)이 적용되어야 하기 때문
  • length 대신, length() 사용 이유?
    참고: length, length(), size()

  • "hello"라는 문자열을 각 문자 개별로 봐야하므로, charAt() 메소드가 필요하다.
    참고: 문자열 뒤집기 Lv. 0

방법 2

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

방법 3

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;
    }
}
  • split("") : my_string을 한 글자씩 나눠 담는다

문자 반복 출력하기

profile
개발자로 거듭나기!

0개의 댓글