Java/Java 알고리즘

백준 25088번 Punched Cards JAVA 구현해보기

kimc 2022. 5. 28. 22:08

```

백준 25088번 Punched Cards JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1. 백준 25088번 풀이

https://www.acmicpc.net/problem/25088

 

25088번: Punched Cards

For each test case, output one line containing Case #x:, where $x$ is the test case number (starting from 1). Then, output $(2⋅R)+1$ additional lines with the ASCII art drawing of a punched card with $R$ rows and $C$ columns.

www.acmicpc.net

 

 

백준 25088번 Punched Cards는

난이도 브론즈 등급의 문제로서

 

테스트 케이스만큼

행과 열을 나타내는 숫자가 주어지면

해당 숫자에 맞춰서 펀치카드를 출력해주면 됩니다.

 

예 10 10 펀치카드

 

1
10 10
Case #1:
..+-+-+-+-+-+-+-+-+-+
..|.|.|.|.|.|.|.|.|.|
+-+-+-+-+-+-+-+-+-+-+
|.|.|.|.|.|.|.|.|.|.|
+-+-+-+-+-+-+-+-+-+-+
|.|.|.|.|.|.|.|.|.|.|
+-+-+-+-+-+-+-+-+-+-+
|.|.|.|.|.|.|.|.|.|.|
+-+-+-+-+-+-+-+-+-+-+
|.|.|.|.|.|.|.|.|.|.|
+-+-+-+-+-+-+-+-+-+-+
|.|.|.|.|.|.|.|.|.|.|
+-+-+-+-+-+-+-+-+-+-+
|.|.|.|.|.|.|.|.|.|.|
+-+-+-+-+-+-+-+-+-+-+
|.|.|.|.|.|.|.|.|.|.|
+-+-+-+-+-+-+-+-+-+-+
|.|.|.|.|.|.|.|.|.|.|
+-+-+-+-+-+-+-+-+-+-+
|.|.|.|.|.|.|.|.|.|.|
+-+-+-+-+-+-+-+-+-+-+


30분 정도 위에 링크를 방문하셔서 풀어보시고

안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.


정해진 조건에 맞춰서

좌측 최상단 모서리에는. 4개를 넣어주고

나머지 공간에는 -+ 와 |. 패턴으로

채워주었습니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.stream.IntStream;

public class Main {

    static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws IOException {
        final int testCases = Integer.parseInt(br.readLine());

        StringBuilder sb = new StringBuilder();
        for (int idx =1;idx<=testCases;idx++){
            String[] inputs = br.readLine().split(" ");
            int row = Integer.parseInt(inputs[0]);
            int col = Integer.parseInt(inputs[1]);
            sb.append(solve(idx, row, col));
        }
        sb.setLength(sb.length()-1);
        System.out.print(sb);
    }

    private static String solve(int idx, int row,int col) {
        StringBuilder resultSb = new StringBuilder();
        resultSb.append("Case #").append(idx).append(":\n");

        StringBuilder pattern01Sb = new StringBuilder();
        StringBuilder pattern02Sb = new StringBuilder();

        IntStream.range(0, col).forEach(k->{
            pattern01Sb.append("+-");
            pattern02Sb.append("|.");
        });

        pattern01Sb.setLength(pattern01Sb.length()-1);
        pattern02Sb.setLength(pattern02Sb.length()-1);

        resultSb.append("..").append(pattern01Sb).append("\n");
        resultSb.append("..").append(pattern02Sb).append("\n");

        pattern01Sb.append("-+");
        pattern02Sb.append(".|");

        resultSb.append(pattern01Sb).append("\n");

        IntStream.range(0, row-1).forEach(k->{
            resultSb.append(pattern02Sb).append("\n");
            resultSb.append(pattern01Sb).append("\n");
        });

        return resultSb.toString();
    }

}

//codemasterkimc.tistory.com [김씨의 코딩 스토리]

 

읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)

 


 

728x90