본문 바로가기

Java/코딩테스트

[프로그래머스/181836] 그림 확대(.toCharArray, String.valueOf, .repeat, .append)

✏️ 문제 설명

직사각형 형태의 그림 파일이 있고, 이 그림 파일은 1 × 1 크기의 정사각형 크기의 픽셀로 이루어져 있습니다. 이 그림 파일을 나타낸 문자열 배열 picture과 정수 k가 매개변수로 주어질 때, 이 그림 파일을 가로 세로로 k배 늘린 그림 파일을 나타내도록 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

 


✏️ code

📌 row.toCharArray()
- .toCharArray: 문자열 row를 문자 배열로 변환합니다.
- 이유: 문자열의 각 문자에 대한 반복적인 작업을 수행하기 위해, 문자열을 문자 단위로 분리하였습니다.

📌add.append(String.valueOf(c).repeat(k))
- String.valueOf(c): c를 문자열로 변환합니다. (repeat(k)는 문자열에만 적용되기 때문)
- .repeat(k): 문자열을 k번 반복합니다.
- add.append(): StringBuilder 객체 끝에 append 메서드로 c가 k번 반복된 문자열을 추가합니다.

 

class Solution {
    public String[] solution(String[] picture, int k) {
        return multiplePicture(picture, k);
    }
    
    private static String[] multiplePicture(String[] picture, int k) {
        String[] result = new String[picture.length * k];
        int index = 0;
        for (String row : picture) {
            StringBuilder add = new StringBuilder();
            for (char c : row.toCharArray()) {
                add.append(String.valueOf(c).repeat(k));
            }
            for (int i = 0; i < k; i++) {
                result[index++] = add.toString();
            }
        }
        return result;
    }
}

 

반응형