본문 바로가기

프로그래머스(Java)/Level 0

[프로그래머스] 그림 확대

728x90

코드 힌트

  1. 배열 크기 설정:
    • 결과를 담을 배열을 생성합니다. 배열의 크기는 입력된 문자열 배열의 길이에 k를 곱한 값입니다. 이는 각 문자열이 k배로 커지기 때문입니다.
  2. 문자열 반복 처리:
    • 각 문자열의 각 문자를 k번 반복하여 새로운 문자열을 생성합니다. String.valueOf(s.charAt(j)).repeat(k)를 사용하여 문자열을 반복합니다.
  3. 문자열의 행 반복 추가:
    • 각 문자열 행을 k번 반복하여 결과 배열에 추가합니다. 이 과정에서 StringBuilder를 사용하여 반복된 문자열을 효율적으로 생성하고, result 배열에 저장합니다.
  4. 결과 배열에 저장:
    • 반복된 각 문자열을 결과 배열에 추가하고, 인덱스를 업데이트하여 올바른 위치에 저장합니다.

정답은 더보기 클릭

더보기
class Solution {
    public String[] solution(String[] picture, int k) {
        // 결과를 담을 배열을 생성합니다. 결과 배열의 길이는 입력 배열의 길이 * k입니다.
        String[] result = new String[picture.length * k];
        int index = 0;
        
        // 입력된 문자열 배열을 한 줄씩 처리합니다.
        for (int i = 0; i < picture.length; i++) {
            String s = picture[i];
            StringBuilder sb = new StringBuilder();
            
            // 현재 줄의 각 문자를 k번 반복하여 새로운 문자열을 만듭니다.
            for (int j = 0; j < s.length(); j++) {
                sb.append(String.valueOf(s.charAt(j)).repeat(k));
            }
            
            // 반복된 문자열을 k번 추가하여 결과 배열에 저장합니다.
            for (int j = 0; j < k; j++) {
                result[index++] = sb.toString();
            }
        }
        
        return result;
    }
}
728x90