코딩 테스트 (Java)/코딩 기초 트레이닝 (프로그래머스)

181836. 그림 확대

가지코딩 2025. 4. 23. 09:53

https://school.programmers.co.kr/learn/courses/30/lessons/181836

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


문제

직사각형 형태의 그림 파일이 있고, 이 그림 파일은 1 × 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.", "..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......", "......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"]

 

입출력 예 #1

  • 예제 1번의 picture는 다음과 같습니다.이를 가로 세로로 k배, 즉 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......", "......xx..xx......", "........xx........", "........xx........"]를 return 합니다.
  • ..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......
    ......xx..xx......
    ........xx........
    ........xx........
    
  • .xx...xx.
    x..x.x..x
    x...x...x
    .x.....x.
    ..x...x..
    ...x.x...
    ....x....
    

입출력 예 #2

  • 예제 2번의 picture는 다음과 같습니다.이를 가로 세로로 k배, 즉 3배 확대하면 그림 파일은 다음과 같습니다.따라서 ["xxx...xxx", "xxx...xxx", "xxx...xxx", "...xxx...", "...xxx...", "...xxx...", "xxx...xxx", "xxx...xxx", "xxx...xxx"]를 return 합니다.
  • xxx...xxx
    xxx...xxx
    xxx...xxx
    ...xxx...
    ...xxx...
    ...xxx...
    xxx...xxx
    xxx...xxx
    xxx...xxx
    
  • x.x
    .x.
    x.x
    

풀이

import java.util.*;

class Solution {
    public String[] solution(String[] picture, int k) {
        List<String> result = new ArrayList<>();

        for (String row: picture) {
            String rowk = row.chars()
                .mapToObj(c -> String.valueOf((char) c).repeat(k))
                .reduce("", String::concat);

            for (int i = 0; i < k; i++) {
                result.add(rowk);
            }
        }

        return result.toArray(new String[0]);
    }
}

 

 

 


GitHub: https://github.com/gajicoding/coding_test/edit/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/0/181836.%E2%80%85%EA%B7%B8%EB%A6%BC%E2%80%85%ED%99%95%EB%8C%80


출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr