티스토리 뷰

1) 생각

문자가 주어지면 그 문자를 가지고 모양을 만들어라.


Ex) APPLE 일 경우


첫 번째 생각

문자를 가지고 만드는 패턴이 정형화되어있고, 세로의 길이는 무조건 5줄이다.


두 번째 생각

(1,5) 줄과 (2,4) 줄이 쌍이므로 두 줄중 한 줄을 만든뒤 복사해주면 된다.


2) 방안

한 줄 한 줄 패턴에 맞춰서 만들어 준다. 중앙 줄을 미리 만들어주면 나머지는 중앙 줄과 비교해서 만들어 줄 수 있다.

(2,4) 줄은 중앙 줄에서 '.'이 나오는 구간은 '#'이고 나머지는 '.'으로 표현된다.

(1,5) 줄은 중앙 줄에서 문자가 나오는 구간은 '#'이고 나머지는 '.'으로 표현된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.io.IOException;
import java.util.Scanner;
 
public class Solution {
    public static void main(String[] args) throws IOException{
        Scanner sc = new Scanner(System.in);
        int tc = sc.nextInt();
        StringBuilder sb = new StringBuilder();
        for(int i=1;i<=tc;i++) {
            String word = sc.next();
            String[] result = new String[5];
            for(int j=0;j<5;j++)
                result[j] = "";
            // 중앙 문자열 만들기
            result[2= "#.";
            for(int j=0;j<word.length();j++) {
                if(j==word.length()-1)
                    result[2+= word.charAt(j)+".#";
                else
                    result[2+= word.charAt(j)+".#.";
            }
            
            // 중앙 위, 아래 만들기
            for(int j=0;j<result[2].length();j++) {
                if(result[2].charAt(j)=='.')
                    result[1+= '#';
                else result[1+= '.';
            }
            result[3= result[1];
            
            // 맨 위, 맨 아래 만들기
            for(int j=0;j<result[2].length();j++) {
                if(result[2].charAt(j)=='.'||result[2].charAt(j)=='#')
                    result[0+= '.';
                else result[0+= '#';
            }
            result[4= result[0];
            for(int j=0;j<5;j++)
                sb.append(result[j]+"\n");            
        }
        System.out.println(sb);
    }
}
cs


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday