![[BOJ] ๋ฐฑ์ค 2290 LCD Test (JAVA)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjRhom%2FbtsEqxxmV04%2F5CcZDhvzUPewgLPvwlhykK%2Fimg.png)

๐ ๋ฌธ์

๐ฑ ์์ด๋์ด
LCD์ ํ์๋ ์ซ์์ ๊ท์น์ ์ฐพ๊ณ ๋ชจ๋์์ผ๋ก ์กฐ๋ฆฝํด์ ์ถ๋ ฅํ์!
ํ๋ํ๋ N์ ํฌ๊ธฐ์ ๋ง์ถฐ์ ์ถ๋ ฅํ๋ ๊ฒ๋ณด๋ค ์ซ์๋ฅผ ๊ตฌ์ฑํ๋ ๊ท์น์ ์ฐพ๊ณ ๊ฐ๋ก์ค์ ๊ธฐ์ค์ผ๋ก ์ถ๋ ฅ์ ํ๋ ๊ฒ ํจ์จ์ ์ด๋ค.
์์ ์ถ๋ ฅ 1์ ๋ณด๋ฉด ์ซ์๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ ๋๋ ํจํด์ด ๋ณด์ธ๋ค

๊ฐ์ฅ ์ ๋ถํฐ ์ค๋ฅธ์ชฝ ๋ฐ, ์ผ์ชฝ ๋ฐ, ์์ชฝ ๋ฐ, ๊ณต๋ฐฑ, ํ๋จ ๋ฐ ์ด 5๊ฐ์ง์ ๋ชจ๋์ด ํ์ํ๋ค.
์ด ๊ฒฝ์ฐ๋ N = 2์ธ ๊ฒฝ์ฐ๋ค ๋น์ฐํ N ์ด ์ฆ๊ฐ๋๋ฉด ๊ทธ๊ฑฐ์ ๋ง๊ฒ ๊ฐ๋ก๊ธธ์ด๋ ๊ธธ์ด์ง ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด
ํ๋จ ๋ฐ๋ N = 3 ์ผ ๋ " --- " ์ด๋ฐ ํํ์ ๋ชจ๋์ด ์๊ตฌ๋๋ค. ์์ ์์ ์ถ๋ ฅ์ ๋ณด๋ฉด ์ด๋ฐ ํจํด์ผ๋ก ์ซ์๊ฐ ์ถ๋ ฅ๋๋ ๊ฒ์ ์ ์ ์๋ค.
์ฆ ํด๋น ๋ชจ๋์ ์ด์ฉํ์ฌ ํด๋น ์ซ์๋ฅผ ํํํ๊ธฐ ์ํด ํ๋ง๋ค ๋ง๋ ๋ชจ๋์ ๋ฃ๊ณ ๋ค์ ํ์ผ๋ก ๋์ด๊ฐ์ผ ํ๋ค.
๋น์ฐํ๊ฒ๋ ํ๋ง๋ค ํ์ํ ๋ชจ๋์ด ๊ฐ๊ฐ ๋ค๋ฅด๋ค ๊ทธ๋ ๊ธฐ์ "๋ฒ์"๋ฅผ ์ค์ ํด์ 0~4 ๊น์ง๋ ๋ชจ๋ 1๋ฒ ์ฌ์ฉ ์ด๋ฐ ๋๋์ผ๋ก ๊ตฌํํด์ผ ํ๋ค.
๊ตฌํ๋ฌธ์ ๋ค ๋ณด๋ ์ฝ๋๊ฐ ๋งค์ฐ ๊ธธ๋ค.... ์ฃผ์๋ง ์ฝ๊ณ ๊ฐ๋ง ์ก์๋ ์ถฉ๋ถํ ํ ์ ์๋ ์ฌ์ด ๋ฌธ์ ์ด๋ค.
๐ฑ ์ฝ๋ ๋ฐ ํ์ด
public class Main { | |
public static StringBuilder sb = new StringBuilder(); | |
public static int x, y; | |
public static String leftRow = ""; | |
public static String rightRow = ""; | |
public static String bothRow = ""; | |
public static String col = ""; | |
public static String empty = ""; | |
public static void makeNumber(char n, int k) { // ๊ตฌํ | |
// ๊ฐ ์ซ์๋ง๋ค kํ์ ๋ง๊ฒ ๋ชจ๋์ ์ถ๋ ฅํ๋ค. | |
switch (n) { | |
case '1': | |
if (k == 0 || k == y / 2 || k == y - 1) { | |
sb.append(empty); | |
} else { | |
sb.append(rightRow); | |
} | |
break; | |
case '2': | |
if (k == 0 || k == y / 2 || k == y - 1) { | |
sb.append(col); | |
} else if (k > 0 && k < y / 2) { | |
sb.append(rightRow); | |
} else { | |
sb.append(leftRow); | |
} | |
break; | |
case '3': | |
if (k == 0 || k == y / 2 || k == y - 1) { | |
sb.append(col); | |
} else { | |
sb.append(rightRow); | |
} | |
break; | |
case '4': | |
if (k == 0 || k == y-1) { | |
sb.append(empty); | |
} else if (k > 0 && k < y / 2) { | |
sb.append(bothRow); | |
} else if (k == y / 2) { | |
sb.append(col); | |
} else { | |
sb.append(rightRow); | |
} | |
break; | |
case '5': | |
if (k == 0 || k == y / 2 || k == y - 1) { | |
sb.append(col); | |
} else if (k > 0 && k < y / 2) { | |
sb.append(leftRow); | |
} else { | |
sb.append(rightRow); | |
} | |
break; | |
case '6': | |
if (k == 0 || k == y / 2 || k == y - 1) { | |
sb.append(col); | |
} else if (k > 0 && k < y / 2) { | |
sb.append(leftRow); | |
} else { | |
sb.append(bothRow); | |
} | |
break; | |
case '7': | |
if (k == 0) { | |
sb.append(col); | |
} else if (k == y/2 || k == y-1){ | |
sb.append(empty); | |
} else { | |
sb.append(rightRow); | |
} | |
break; | |
case '8': | |
if (k == 0 || k == y / 2 || k == y - 1) { | |
sb.append(col); | |
} else { | |
sb.append(bothRow); | |
} | |
break; | |
case '9': | |
if (k == 0 || k == y / 2 || k == y - 1) { | |
sb.append(col); | |
} else if (k > 0 && k < y / 2) { | |
sb.append(bothRow); | |
} else { | |
sb.append(rightRow); | |
} | |
break; | |
case '0': | |
if (k == 0 || k == y - 1) { | |
sb.append(col); | |
} else if (k == y/2) { | |
sb.append(empty); | |
} else { | |
sb.append(bothRow); | |
} | |
break; | |
} | |
sb.append(" "); | |
} | |
public static void main(String[] args) throws IOException { //์กฐ๊ฑด ์ ๋ ฅ | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
StringTokenizer st = new StringTokenizer(br.readLine(), " "); | |
int N = Integer.parseInt(st.nextToken()); | |
String str = st.nextToken(); | |
x = N + 2; // ๊ฐ๋ก | |
y = N * 2 + 3; // ์ธ๋ก | |
// ํ๋จ ๋ฐ ์์ฑ | |
for (int i = 0; i < x; i++) { | |
if (i == 0 || i == x - 1) { | |
col += " "; | |
} else { | |
col += "-"; | |
} | |
} | |
for (int i = 0; i < x; i++) { | |
// ์ค๋ฅธ์ชฝ ๋ฐ ์์ฑ | |
if (i == x - 1) { | |
rightRow += "|"; | |
} else { | |
rightRow += " "; | |
} | |
// ์ผ์ชฝ ๋ฐ ์์ฑ | |
if (i == 0) { | |
leftRow += "|"; | |
} else { | |
leftRow += " "; | |
} | |
// ์์ชฝ ๋ฐ ์์ฑ | |
if (i > 0 && i < x -1) { | |
bothRow += " "; | |
} else { | |
bothRow += "|"; | |
} | |
// ๊ณต๋ฐฑ ์์ฑ | |
empty += " "; | |
} | |
// ์ถ๋ ฅ ํ์์ ์งํค๊ธฐ ์ํด ์ธ๋ก ๊ธธ์ด๋งํผ ๋ฐ๋ณตํด์ผ ์ซ์ ์ถ๋ ฅ๊ฐ๋ฅ | |
for (int i = 0; i < N * 2 + 3; i++) { | |
for (int j = 0; j < str.length(); j++) { | |
makeNumber(str.charAt(j), i); | |
} | |
sb.append("\n"); | |
} | |
System.out.print(sb); | |
} | |
} | |
์ ์ฃผ์์ ์ ์ฝ๊ณ ๋ฐ๋ผ์๋ค๋ฉด ๋จ์ ๊ตฌํ์ด๊ธฐ ๋๋ฌธ์ ์๋ํ์ ์ ์ฌ์ธ ๊ฒ์ด๋ค
๋ค๋ง ์ ์ซ์ ์์ฑ ์ "์ธ๋ก ๊ธธ์ด" ๋งํผ ๋ฐ๋ณตํ๋ ๊ฒ์ ์๋ฌธ์ ๊ฐ์ง ์ ์์ ๊ฒ ๊ฐ๋ค.

์ธ๋ก๊ธธ์ด๋งํผ "ํ" ๋ง๋ค ์ถ๋ ฅ์ ํด์ผ ํ์์ ๋ง๊ฒ ์ถ๋ ฅ๊ฐ๋ฅํ๋ค. ์ฆ ํน์ ํ๋ง๋ค ํ์ํ ๋ชจ๋์ ๊ฐ์ ธ๋ค ๋ถ์ฌ์
์ถ๋ ฅ์ ํด์ผํ๋ค.
๐ฑ ๋๋ ์

์๊ฐ๋๋ก ์ด๋ฌํ ํ์ด๊ฐ ๋ํดํ์ง๋ ์๊ณ ๊ตฌ์กฐ๋ ๋จ์ํด์ ์ดํดํ๊ธฐ๋ ์ฝ๊ณ ์ฑ๋ฅ๋ ์ข์ ๊ฒ์ด๋ผ ์๊ฐํ๋๋ฐ
๋ด ์๊ฐ์ด ๋ง์ ๊ฒ ๊ฐ์์ ๊ธฐ์๋ค ใ ใ ์ด๋ฒ ๋ฌธ์ ์์ ๊ฐ์ฅ ๊ณ ๋ฏผํ๋ ๊ฒ์ ๋ชจ๋ ์กฐ๋ฆฝ + ์ถ๋ ฅ์ธ๋ฐ
๋ชจ๋์ ์์ฑํ๋ ๊ฒ์ ์ฝ๋๊ฐ ๊ธธ์ด์ก์ง๋ง ์ข์ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๋ ๊ฒ ๊ฐ์์ ๋ฟ๋ฏํ๋ค ใ ใ
'Algorithm > - Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๋ฐฑ์ค 11657 ํ์๋จธ์ (JAVA) (0) | 2024.02.20 |
---|---|
[BOJ] ๋ฐฑ์ค 17836 ๊ณต์ฃผ๋์ ๊ตฌํด๋ผ! (JAVA) (2) | 2024.02.13 |
[BOJ] ๋ฐฑ์ค 2096 ๋ด๋ ค๊ฐ๊ธฐ (JAVA) (1) | 2024.01.29 |
[BOJ] ๋ฐฑ์ค 15663 N๊ณผ M(9) (JAVA) (1) | 2024.01.29 |
[BOJ] ๋ฐฑ์ค 2493 ํ (JAVA) (1) | 2024.01.22 |
๋๋ง์ ๊ฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค!
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!