문제 설명
직사각형 형태의 그림 파일이 있고, 이 그림 파일은 1 x 1 크기의 정사각형 크기의 픽셀로 이루어져 있습니다. 이 그림 파일을 나타낸 문자열 배열 picture과 정수 k가 매개변수로 주어질 때, 이 그림 파일을 가로 세로로 k배 늘린 그림 파일을 나타내도록 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- 1 <= picture의 길이 <= 20
- 1 <= picture의 원소의 길이 <= 20
- 모든 picture의 원소의 길이는 같습니다.
- picture의 원소는 '.'과 'x'로 이루어져 있습니다.
- 1 <= k <= 10
입출력 예
picture | k | result |
[".xx...xx.", "x..x.x..x", ".x.....x.", "..x...x..", ".....x....."] |
2 | ["..xxxx......xxxx..", "..xxxx......xxxx..", "xx....xx..xx....xx", "xx....xx..xx....xx", "xx......xx......xx", "xx......xx......xx", "..xx..........xx..", "..xx..........xx..", "......xx..xx......", "......xx..xx......", "........xx........", "........xx........"] |
["x.x", ".x.", "x.x"] |
3 | ["xxx...xxx", "xxx...xxx", "xxx...xxx", "...xxx...", "...xxx...", "...xxx...", "xxx...xxx", "xxx...xxx", "xxx...xxx"] |
import java.lang.StringBuilder;
class Solution {
public String[] solution(String[] picture, int k) {
String[] answer = new String[picture.length * k];
int index = 0;
for (int i = 0; i < picture.length; i++) {
StringBuilder sb = new StringBuilder();
for (int j = 0; j < picture[i].length(); j++) {
for (int n = 0; n < k; n++) {
sb.append(picture[i].charAt(j));
}
}
for (int j = 0; j < k; j++) {
answer[index++] = sb.toString();
}
}
return answer;
}
}
answer 배열의 크기는 picture에서 k만큼 확대한 값을 할당합니다.
이후 answer의 인덱스를 담당할 index 변수를 생성합니다.
첫 번째 for문이 picture의 길이만큼 순회합니다.
StringBuilder를 생성합니다. picture의 i번째에 있는 문자를 확대할 때 쓸 것입니다.
두 번째 for문이 picture의 i번째 원소의 길이만큼 순회합니다.
세 번째 for문이 n이 k보다 작은 동안 순회합니다.
append 메소드를 이용하여 picture의 i번째 원소에서 j번째 문자를 k번 반복하여 추가합니다.
네 번째 for문에서 j가 k보다 작은 동안 순회합니다. 앞선 과정에서 문자열만을 확대했다면 이번에는 확대한 문자열 전체를 k번 반복하여 원소로 추가하는 것입니다.
answer의 index 번째 원소에 sb를 할당합니다. 할당하기 전 toString 메소드를 이용하여 StringBuilder를 문자열로 변경하여 올바른 문자열을 할당할 수 있도록 합니다.
'프로그래머스 > Lv. 0(코딩 기초 트레이닝)' 카테고리의 다른 글
[프로그래머스 코딩테스트] 배열 만들기 2(Java) (0) | 2023.06.22 |
---|---|
[프로그래머스 코딩테스트] 수열과 구간 쿼리 2(Java) (0) | 2023.06.17 |
[프로그래머스 코딩테스트] 두 수의 합(Java) (0) | 2023.06.05 |
[프로그래머스 코딩테스트] 빈 배열에 추가, 삭제하기(Java) (0) | 2023.06.04 |
[프로그래머스 코딩테스트] 조건에 맞게 수열 변환하기 2(Java) (0) | 2023.06.03 |