728x90
반응형
1. 문제
전광판에서 숫자를 출력하게 되는데, 전광판은 총 5줄로 되어 있으며 숫자는 아래 그림과 같이 표현한다.

위와 같이 각 숫자는 '#' 와 '-'로 표현되며, 각 숫자 사이에는 위와 같이 공백으로 구분된다.
이 때, 숫자 n을 입력받아 전광판의 각 라인에 출력할 내용을 순서대로 배열로 반환하는 프로그램을 작성하시오.
2. 입력 설명
- 0 <= n <= 10000
3. 출력 설명
문자열로 이루어진 배열 반환
4. 매개변수 형식
n = 132
5. 반환값 형식

6. 코드 구현
import java.util.*;
class Solution {
// 전광판은 총 5줄
static final int NUM_LINE = 5;
public String[] solution(int n) {
String[][] digitsToString = new String[NUM_LINE][10];
digitsToString[0] = "##### --#-- ##### ##### #---# ##### ##### ##### ##### #####".split(" ");
digitsToString[1] = "#---# --#-- ----# ----# #---# #---- #---- ----# #---# #---#".split(" ");
digitsToString[2] = "#---# --#-- ##### ##### ##### ##### ##### ----# ##### #####".split(" ");
digitsToString[3] = "#---# --#-- #---- ----# ----# ----# #---# ----# #---# ----#".split(" ");
digitsToString[4] = "##### --#-- ##### ##### ----# ##### ##### ----# ####3 ----#".split(" ");
String inputDigit = String.valueOf(n);
String[] result = new String[NUM_LINE];
Arrays.fill(result,"");
for (int i = 0; i < inputDigit.length() ; i++) {
// 입력받은 숫자 한 글자씩 intDigit 변수에 대입
int intDigit = Character.getNumericValue(inputDigit.charAt(i));
for (int j=0 ; j < NUM_LINE ; j++) {
result[j] += digitsToString[j][intDigit];
// 마지막 문자가 아니라면 " " 삽입
if(i < inputDigit.length() -1 ) {
result[j] += " ";
}
}
}
return result;
}
}반응형
'Coding Test Study > Programmers' 카테고리의 다른 글
| [Java] 거꾸로 BFS (0) | 2024.02.18 |
|---|---|
| [Java] 자릿수 교환을 통한 최댓값 찾기 (0) | 2024.02.17 |
| [Coding/Programmers] 문자열안에 문자열 (0) | 2023.11.27 |
| [Coding/Programmers] 배열 회전시키기 (0) | 2023.11.27 |
| [Coding/Programmers] 한 번만 등장한 문자 (0) | 2023.11.27 |