Java/Java 알고리즘

백준 23808번 골뱅이 찍기 - ㅂ JAVA 구현해보기

kimc 2022. 6. 9. 20:39

```

백준 23808번 골뱅이 찍기 - ㅂ JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1. 백준 23808번 풀이

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

 

23808번: 골뱅이 찍기 - ㅂ

서준이는 아빠로부터 골뱅이가 들어 있는 상자를 생일 선물로 받았다. 상자 안에는 ㅂ자 모양의 골뱅이가 들어있다. ㅂ자 모양은 가로 및 세로로 각각 5개의 셀로 구성되어 있다. 상자에는 정사

www.acmicpc.net

백준 23808번 골뱅이 찍기는

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

 

셀의 크기가 N인 골뱅이로 만든 ㅂ 모양을 출력해주면 됩니다.

예)

 

1

@   @
@   @
@@@@@
@   @
@@@@@

2

@@@         @@@
@@@         @@@
@@@         @@@
@@@         @@@
@@@         @@@
@@@         @@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@         @@@
@@@         @@@
@@@         @@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@

 

 


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

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


입력을 받고

블록단위로 수평 부분과 수직 부분을 나눠서 출력했습니다.

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

public class Main {

    public static void main(String[] args) throws IOException {
        final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        final int N = Integer.parseInt(br.readLine());
        final String AT = "@";
        final String SPACE = " ";
        StringBuilder sb = new StringBuilder();

        final String atHorizontalStroke = AT.repeat(N * 5);
        final String atVerticalStroke = AT.repeat(N);
        final String spaceVerticalStroke = SPACE.repeat(N * 3);

        StringBuffer horizontalPlankSb = new StringBuffer();
        IntStream.range(0, N).forEach(i -> horizontalPlankSb
                .append(atHorizontalStroke)
                .append("\n"));

        StringBuffer verticalPlankSb = new StringBuffer();
        IntStream.range(0, N).forEach(i -> verticalPlankSb
                .append(atVerticalStroke)
                .append(spaceVerticalStroke)
                .append(atVerticalStroke)
                .append("\n"));

        sb.append(verticalPlankSb).append(verticalPlankSb)
                .append(horizontalPlankSb).append(verticalPlankSb).append(horizontalPlankSb);
        sb.setLength(sb.length() - 1);
        System.out.print(sb);
    }
}

// https://codemasterkimc.tistory.com

 

읽어주셔서 감사합니다

 

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

 

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

 


 

728x90