Java/Java 알고리즘

백준 23805번 골뱅이 찍기 - 돌아간 ㄹ JAVA 구현해보기

kimc 2022. 6. 7. 23:51

```

백준 23805번 골뱅이 찍기 - 돌아간 ㄹ JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1. 백준 23805번 풀이

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

 

23805번: 골뱅이 찍기 - 돌아간 ㄹ

서준이는 아빠로부터 골뱅이가 들어 있는 상자를 생일 선물로 받았다. 상자 안에는 반시계방향으로 90도 돌아간 ㄹ자 모양의 골뱅이가 들어있다. 돌아간 ㄹ자 모양은 가로 및 세로로 각각 5개

www.acmicpc.net

 

백준 23805번 골뱅이 찍기 - 돌아간 ㄹ는

 

 

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

 

1일 때

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

3일 때

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

와 같은 모양을

N이 주어질 때 출력해주면 됩니다.

 


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 * 3);
        final String atVerticalStroke = AT.repeat(N);
        final String spaceVerticalStroke = SPACE.repeat(N);

        IntStream.range(0, N).forEach(i -> sb
                .append(atHorizontalStroke)
                .append(spaceVerticalStroke)
                .append(atVerticalStroke)
                .append("\n"));

        IntStream.range(0, N * 3).forEach(i -> sb
                .append(atVerticalStroke)
                .append(spaceVerticalStroke)
                .append(atVerticalStroke)
                .append(spaceVerticalStroke)
                .append(atVerticalStroke)
                .append("\n"));


        IntStream.range(0, N).forEach(i -> sb
                .append(atVerticalStroke)
                .append(spaceVerticalStroke)
                .append(atHorizontalStroke)
                .append("\n"));

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

// https://codemasterkimc.tistory.com

 

읽어주셔서 감사합니다

 

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

 

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

 


 

728x90