๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/27137)
< Square Designs >
๋ฌธ์ ํ์ด
์ ๋ ฅ๋ฐ์ ์ ์์ ๋ง๊ฒ ์ฌ๊ฐํ ๋์์ธ์ ์ถ๋ ฅํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class _27137_ { // Square Designs
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(bf.readLine());
int m = Integer.parseInt(st.nextToken());
int n = Integer.parseInt(st.nextToken());
bw.write("+");
for (int i = 0; i < m * 2 + 1; i++) {
bw.write("-");
}
bw.write("+");
bw.write(" ");
bw.write("+");
for (int i = 0; i < n * 2 + 1; i++) {
bw.write("-");
}
bw.write("+\n");
int x = m, y = n;
boolean flag = false, left = false, right = false;
while (x > -1 || y > -1) {
if (flag) {
left = true;
}
if (x == 0 && !flag) {
if (right) {
bw.write("\n");
}
bw.write("+");
for (int i = 0; i < m * 2 + 1; i++) {
bw.write("-");
}
bw.write("+");
flag = true;
x = -1;
}
if (x > 0) {
if (right) {
bw.write("\n");
}
bw.write("I-");
for (int j = 0; j < m; j++) {
bw.write("X-");
}
bw.write("I");
x -= 1;
}
if (y > 0) {
if (left) {
for (int i = 0; i < m * 2 + 3; i++) {
bw.write(" ");
}
}
bw.write(" ");
bw.write("I-");
for (int j = 0; j < n; j++) {
bw.write("X-");
}
bw.write("I\n");
y -= 1;
} else if (y == 0 && !right) {
if (left) {
for (int i = 0; i < m * 2 + 3; i++) {
bw.write(" ");
}
}
bw.write(" ");
bw.write("+");
for (int i = 0; i < n * 2 + 1; i++) {
bw.write("-");
}
bw.write("+");
right = true;
y = -1;
}
}
bw.flush();
}
}
๋ณ์)
m, n : ์ ์
x, y : ์ถ๋ ฅํด์ผ ํ๋ ๋ผ์ธ ์
์ ์ m, n์ ์ ๋ ฅ๋ฐ๋๋ค. ๊ฐ ๋งจ ์์ค์ ์ถ๋ ฅํ๋ค.
m ์ค๊ณผ n ์ค ๋งํผ I-X-X-I ํ์์ผ๋ก ์ถ๋ ฅํด์ผ ํ๋ฏ๋ก x๊ฐ -1๋ณด๋ค ํฌ๊ฑฐ๋ y๊ฐ -1๋ณด๋ค ํด ๋ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) m์ ๋ง์ง๋ง ์ค์ ์ถ๋ ฅํ๋ค๋ฉด left = true
2) m ์ค์ ๋ค ์ถ๋ ฅํ๊ณ ์์ง ๋ง์ง๋ง ์ค์ ์ถ๋ ฅํ์ง ์์๋ค๋ฉด ๋ง์ง๋ง ์ค ์ถ๋ ฅ ํ flag= true, x=-1 ์ ์ฅ
3) x๊ฐ 0๋ณด๋ค ํฌ๋ค๋ฉด I-X-X-I ํ์ ์ถ๋ ฅ
4) y๊ฐ 0๋ณด๋ค ํฌ๋ค๋ฉด ๊ณต๋ฐฑ 10์นธ๊ณผ I-X-X-I ํ์ ์ถ๋ ฅ. ๋ง์ฝ ์ผ์ชฝ ๋ฐ์ค๋ฅผ ๋ค ์ถ๋ ฅํ ์ํ๋ผ๋ฉด ์์ ๊ณต๋ฐฑ ๋ ์ถ๊ฐ
5) n ์ค์ ๋ค ์ถ๋ ฅํ๊ณ ์์ง ๋ง์ง๋ง ์ค์ ์ถ๋ ฅํ์ง ์์๋ค๋ฉด ๋ง์ง๋ง ์ค ์ถ๋ ฅ ํ right= true, y=-1 ์ ์ฅ

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Baekjoon] 6107_Plumbing the Pond (0) | 2026.04.23 |
|---|---|
| [Baekjoon] 6754_Bridge transport (0) | 2026.04.22 |
| [Baekjoon] 13382_Lab (0) | 2026.04.20 |
| [Baekjoon] 9354_It Is Cold (0) | 2026.04.10 |
| [Baekjoon] 26934_The Bus Card (0) | 2026.04.09 |