Skip to content

Commit 69725b1

Browse files
committed
[Silver V] Title: Mountains Beyond Mountains, Time: 284 ms, Memory: 25780 KB -BaekjoonHub
1 parent c865249 commit 69725b1

2 files changed

Lines changed: 103 additions & 0 deletions

File tree

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
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.Arrays;
7+
import java.util.StringTokenizer;
8+
9+
public class Main {
10+
public static void main(String[] args) throws IOException {
11+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
12+
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
13+
StringBuilder sb = new StringBuilder();
14+
StringTokenizer st = new StringTokenizer(br.readLine());
15+
16+
int N = Integer.parseInt(st.nextToken());
17+
int M = Integer.parseInt(st.nextToken());
18+
int X = Integer.parseInt(st.nextToken());
19+
20+
char[][] map = new char[N][M];
21+
22+
for (int i = 0; i < N; i++) {
23+
Arrays.fill(map[i], '.');
24+
}
25+
26+
st = new StringTokenizer(br.readLine());
27+
28+
for (int i = 0; i < M; i++) {
29+
int h = Integer.parseInt(st.nextToken());
30+
for (int j = N - h; j < N; j++) {
31+
map[j][i] = '#';
32+
}
33+
}
34+
35+
for (int i = 0; i < M; i++) {
36+
if (map[N - X][i] == '#') {
37+
map[N - X][i] = '*';
38+
} else {
39+
map[N - X][i] = '-';
40+
}
41+
}
42+
43+
for (int i = 2; i < M; i += 3) {
44+
for (int j = N - X + 1; j < N; j++) {
45+
if (map[j][i] == '.') {
46+
map[j][i] = '|';
47+
} else {
48+
break;
49+
}
50+
}
51+
}
52+
53+
for (int i = 0; i < N; i++) {
54+
for (int j = 0; j < M; j++) {
55+
sb.append(map[i][j]);
56+
}
57+
sb.append('\n');
58+
}
59+
60+
bw.write(sb.toString());
61+
bw.flush();
62+
}
63+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# [Silver V] Mountains Beyond Mountains - 13119
2+
3+
[문제 링크](https://www.acmicpc.net/problem/13119)
4+
5+
### 성능 요약
6+
7+
메모리: 25780 KB, 시간: 284 ms
8+
9+
### 분류
10+
11+
구현, 문자열
12+
13+
### 제출 일자
14+
15+
2026년 4월 7일 02:02:28
16+
17+
### 문제 설명
18+
19+
<p>만리장성, 에펠 탑, 그리고 부르즈 할리파까지! 동서고금을 막론하고 세계의 유명 건축물의 건설에는 항상 <em>Constructor’s High 사</em>(이하 CH 주식회사)가 함께했다. 건축계의 최고 전문가들인 그들은, 최근 건설한 거대 고속도로의 모습을 대중들에게 홍보하기 위해 준비 중이다.</p>
20+
21+
<p>CH 주식회사의 직원 범수는, 고속도로의 모습이 담긴 큰 그림을 그리는 임무를 맡았다. 범수는 <em>N</em> × <em>M</em> 픽셀의 디지털 이미지로 큰 그림을 그리게 될 것이며, 큰 그림에는 큰 산맥과, 그 사이를 시원하게 가로지르는 크고 아름다운 고속도로의 모습이 그려지게 될 것이다.</p>
22+
23+
<p>범수는, ‘<code>.</code>’ (ASCII Code 46) 으로 차 있는 빈 이미지 파일에 큰 그림을 그리려고 한다. 범수가 현재 전달받은 정보는 산의 고도 정보와, 고속도로의 높이이다.</p>
24+
25+
<p>산의 고도 정보는 <em>M</em>개의 음이 아닌 정수 <em>H<sub>1</sub></em>, <em>H<sub>2</sub></em>, · · · , <em>H<sub>M</sub></em>으로 주어지며, 왼쪽에서 <em>i</em>번째 픽셀은, 땅에서부터 <em>H<sub>i</sub></em>의 높이만큼 산이 영역을 차지하는 형태로 그려져야 한다. 산은, ‘<code>#</code>’ (ASCII Code 35) 문자로 출력되어야 한다.</p>
26+
27+
<p>고속도로는 높이 <em>X</em>(아래에서 <em>X</em>번째 픽셀)의 가로줄을 차지하게 될 것이다. 고속도로가 지나는 세로줄의 산의 높이가 <em>X</em> 이상이면, 고속도로는 터널의 형태로 건설되며, ‘<code>*</code>’ (ASCII Code 42) 문자로 출력되어야 한다. 고속도로가 지나는 세로줄의 산의 높이가 <em>X</em> 미만이면, 고속도로는 다리의 형태로 건설되며, ‘<code>-</code>’ (ASCII Code 45) 문자로 출력되어야 한다.</p>
28+
29+
<p>한편, 왼쪽에서 <em>i</em>번째 픽셀에 다리를 건설할 때, <em>i</em>가 3의 배수라면, 해당 지점에 교각을 건설해야 한다. 교각은 높이가 <em>X</em> − 1인 지점부터 산 바로 위까지를 잇게 되며, ‘<code>|</code>’ (ASCII Code 124) 문자로 출력되어야 한다.</p>
30+
31+
<p>범수는 어제 큰 그림을 멋지게 완성하고 뿌듯한 마음으로 퇴근했지만, 애석하게도 악당 재현이가 범수의 컴퓨터를 열어서 큰 그림을 휴지통에 넣고 비워버렸다. 범수가 회사에 와서 이 사실을 알게 되면 큰 슬픔에 빠질 것이 분명하니, 여러분이 범수 대신 큰 그림을 그려주자.</p>
32+
33+
### 입력
34+
35+
<p>첫 번째 줄에 이미지의 크기를 나타내는 두 자연수 <em>N</em>, <em>M</em> (2 ≤ <em>N</em>, <em>M</em> ≤ 100 000, 4 ≤ <em>N</em> × <em>M</em> ≤ 200 000) 과 고속도로의 높이 <em>X</em>(1 < <em>X</em> ≤ <em>N</em>)가 공백을 사이로 두고 차례대로 주어진다. 두 번째 줄에 산의 높이를 나타내는 <em>M</em>개의 정수 <em>H<sub>1</sub></em>, <em>H<sub>2</sub></em>, · · · , <em>H<sub>M</sub></em> (0 ≤ <em>H<sub>i</sub></em> ≤ <em>N</em>)이 공백을 사이로 두고 차례로 주어진다.</p>
36+
37+
### 출력
38+
39+
<p>범수의 큰 그림을 <em>N</em>개의 줄에 걸쳐서 출력하라.</p>
40+

0 commit comments

Comments
 (0)