File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # [ Bronze I] 데칼코마니 - 23841
2+
3+ [ 문제 링크] ( https://www.acmicpc.net/problem/23841 )
4+
5+ ### 성능 요약
6+
7+ 메모리: 14240 KB, 시간: 104 ms
8+
9+ ### 분류
10+
11+ 구현, 문자열
12+
13+ ### 제출 일자
14+
15+ 2026년 4월 4일 19:02:31
16+
17+ ### 문제 설명
18+
19+ <p >시험과 과제에 지친 희권이는 취미로 그림을 그리기 시작했다.</p >
20+
21+ <p style =" text-align : center ;" ><img alt =" " src =" https://upload.acmicpc.net/8064ec54-5f48-4eff-a4d1-910fdaf5ee47/-/preview/ " style =" height : 100px ; width : 237px ;" ></p >
22+
23+ <p >하지만, 그림이 별로 마음에 들지 않아 데칼코마니로 바꾸려 한다.</p >
24+
25+ <p style =" text-align : center ;" ><img alt =" " src =" https://upload.acmicpc.net/2f16e34f-6374-4168-b028-0b5b6a6dddf9/-/preview/ " style =" width : 701px ; height : 100px ;" ></p >
26+
27+ <p >위에 보이는 것처럼 그림을 좌우 방향으로 반으로 포개어 접으면, 맞닿는 면에 물감이 번지면서 데칼코마니가 완성된다.</p >
28+
29+ <p >접은 그림은 원래대로 되돌릴 수 없기 때문에 희권이는 결과를 미리 알고 싶어 한다.</p >
30+
31+ <p >희권이에게 그림을 데칼코마니 한 결과를 알려주자.</p >
32+
33+ ### 입력
34+
35+ <p >첫 줄에 그림의 세로 길이 정수 <em >N</em >과 가로 길이 정수 <em >M</em >이 주어진다. (1 ≤ <em >N</em >, <em >M</em > ≤ 50, <em >M</em >은 짝수)</p >
36+
37+ <p ><em >N</em >개 줄에 <em >M</em >개씩 그림에 대한 정보가 주어진다.</p >
38+
39+ <p >물감은 26가지가 있고, 각각 알파벳 대문자 하나로 나타낸다.</p >
40+
41+ <p >그림에서 색칠한 곳은 물감에 해당하는 알파벳으로 빈 곳은 <code >'.'</code >으로 표현한다. 그림의 가로 길이는 짝수이고, 그림을 접었을 때 두 물감이 겹치는 경우는 없다.</p >
42+
43+ ### 출력
44+
45+ <p >데칼코마니 한 그림을 <em >N</em >개의 줄에 걸쳐 출력한다.</p >
46+
Original file line number Diff line number Diff line change 1+ import java .io .BufferedReader ;
2+ import java .io .BufferedWriter ;
3+ import java .io .IOException ;
4+ import java .io .InputStreamReader ;
5+ import java .io .OutputStreamWriter ;
6+ import java .util .StringTokenizer ;
7+
8+ public class Main {
9+ public static void main (String [] args ) throws IOException {
10+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
11+ BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (System .out ));
12+ StringBuilder sb = new StringBuilder ();
13+ StringTokenizer st = new StringTokenizer (br .readLine ());
14+
15+ int N = Integer .parseInt (st .nextToken ());
16+ int M = Integer .parseInt (st .nextToken ());
17+ char [][] result = new char [N ][M ];
18+
19+ for (int i = 0 ; i < N ; i ++) {
20+ String s = br .readLine ();
21+ for (int j = 0 ; j < M ; j ++) {
22+ char c = s .charAt (j );
23+ if (c != '.' ) {
24+ result [i ][j ] = c ;
25+ result [i ][M - j - 1 ] = c ;
26+ } else if (result [i ][j ] == '\0' ) {
27+ result [i ][j ] = c ;
28+ }
29+ }
30+ for (int j = 0 ; j < M ; j ++) {
31+ sb .append (result [i ][j ]);
32+ }
33+ sb .append ('\n' );
34+ }
35+
36+ bw .write (sb .toString ());
37+ bw .flush ();
38+ }
39+ }
You can’t perform that action at this time.
0 commit comments