Skip to content

Commit 83a9d4e

Browse files
committed
[Bronze I] Title: 데칼코마니, Time: 104 ms, Memory: 14240 KB -BaekjoonHub
1 parent 49d47bd commit 83a9d4e

2 files changed

Lines changed: 85 additions & 0 deletions

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
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+
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
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+
}

0 commit comments

Comments
 (0)