Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 2290] LCD Test 본문
반응형
배열 한개에 그리는 방식으로 풀었다.
공백 한칸을 비우는 부분만 신경을 잘 써주면 된다.
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int s = sc.nextInt();
String n = sc.next();
int height = 2*s + 3;
int width = s + 2;
int len = n.length();
char a[][] = new char[height][len * width + len-1];
for(int i=0; i<a.length; i++) {
for(int j=0; j<a[0].length; j++) {
a[i][j] = ' ';
}
}
int blank = -1;
for(int i=0; i<len; i++) {
//우상 세로선
if(n.charAt(i) != '5' && n.charAt(i) != '6') {
for(int j=1; j<height/2; j++)
a[j][width * (i+1) + blank] = '|';
}
//우하 세로선
if(n.charAt(i) != '2') {
for(int j=height/2+1; j<height-1; j++)
a[j][width * (i+1) + blank] = '|';
}
//좌상 세로선
if(n.charAt(i) == '4' || n.charAt(i) == '5' || n.charAt(i) == '6' || n.charAt(i) == '8' || n.charAt(i) == '9' || n.charAt(i) == '0') {
for(int j=1; j<height/2; j++)
a[j][width * (i+1) + blank - (width-1)] = '|';
}
//좌하 세로선
if(n.charAt(i) == '2' || n.charAt(i) == '6' || n.charAt(i) == '8' || n.charAt(i) == '0') {
for(int j=height/2+1; j<height-1; j++)
a[j][width * (i+1) + blank - (width-1)] = '|';
}
//가로선
if(n.charAt(i) != '1') {
for(int j=0; j<height; j++) {
if(j == 0 && n.charAt(i) != '4') {
for(int k=1; k<=s; k++)
a[j][width * (i+1) + blank - k] = '-';
}
if(j == height/2 && n.charAt(i) != '7' && n.charAt(i) != '0')
for(int k=1; k<=s; k++)
a[j][width * (i+1) + blank - k] = '-';
if(j == height-1 && n.charAt(i) != '4' && n.charAt(i) != '7')
for(int k=1; k<=s; k++)
a[j][width * (i+1) + blank - k] = '-';
}
}
blank++;
}
for(int i=0; i<a.length; i++) {
for(int j=0; j<a[0].length; j++) {
System.out.print(a[i][j]);
}
System.out.println();
}
}
}
제대로 출력되었는데도 계속 틀리길래 문제를 다시 확인해보니
빈 공간은 공백으로 채워야 한다고 적혀있었다...;; 빈 공간은 꼭 공백으로 채워주자.
반응형
'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글
[백준 10844] 쉬운 계단 수 (0) | 2019.05.09 |
---|---|
[백준 1912] 연속합 (0) | 2019.05.09 |
[백준 2447] 별 찍기 - 10 (0) | 2019.05.07 |
[백준 1074] Z (0) | 2019.05.07 |
[백준 11000] 강의실 배정 (0) | 2019.05.07 |
Comments