✅문제
" ┌ ┐┘└├ ┤ ┬ ┴ ┼ ─ │ " 이 기호들을 사용하여 11x11 오목판을 출력해라.
" ┌ ┐┘└├ ┤ ┬ ┴ ┼ ─ │ " 이 기호들을 사용하여 11x11 오목판을 출력해라.
✅문제 해설
- ┼ 모양으로 내부를 채운다.
- ┌ ┐┘└ 모양으로 각 모서리를 채워준다.
- ├ ┤를 사용하여 좌, 우 여백을 닫아준다.
- ┬ ┴를 사용하여 위, 아래 여백을 닫아준다.
💢중요💢 조건을 실행하는 순서를 잘 생각하지 않으면 이상한 모양이 나온다.
public static void main(String[] args) {
for (int x = 0; x < 12; x++) {
for (int y = 0; y < 10; y++)
if (x == 0 && y == 9)// 오른쪽 위 모서리막기
System.out.print("┐");
else if (x == 11 && y == 9)// 오른쪽 아래 모서리막기
System.out.print("┘");
else if (x == 0 && y == 0)// 왼쪽 위 모서리막기
System.out.print("┌");
else if (x == 11 && y == 0)// 왼쪽 아래 모서리막기
System.out.print("└");
else if (x == 0)// 위에 막기
System.out.print("┬");
else if (x == 11)// 아래 막기
System.out.print("┴");
else if (y == 0)// 왼쪽 막기
System.out.print("├");
else if (y == 9)// 오른쪽 막기
System.out.print("┤");
else
System.out.print("┼");
System.out.println();
}
}
위 코드로 if~else if 문으로 도배를 하니까 코드가독성이 떨어져서 구조 개선을 하기 위해 다시 리펙토링 작업을 해보았다.
[코드 개선작업 완료]
public static void main(String[] args) {
for (int x = 0; x < 12; x++) {
for (int y = 0; y < 12; y++) {
if(x==0)
if(y==0)
System.out.print("┌");
else if(y==11)
System.out.print("┐");
else
System.out.print("┬");
else if(x==11)
if(y==0)
System.out.print("└");
else if(y==11)
System.out.print("┘");
else
System.out.print("┴");
else
if(y==0)
System.out.print("├");
else if (y==11)
System.out.print("┤");
else
System.out.print("┼");
}
System.out.println();
}
}
기존에 하나에 if문에 &&(and) 연산자를 사용하여 X, Y의 조건을 묶어서 표현하니 가독성이 떨어졌던 것이었다.
이런 식으로 X조건 아래에 Y조건을 붙여서 시각적으로 잘 들어오게 표현한 후 비슷한 조건들끼리 묶어줬다.
✅결과
'IT > 뚝딱뚝딱' 카테고리의 다른 글
[JAVA] ✏️ while문을 이용하여, number가 짝수마다 +가 출력되고, 홀수마다 -가 출력되게 하기. (0) | 2023.06.17 |
---|---|
[JAVA] ✏️ 입력받은 좌표로 바둑알을 "오목판"을 출력해보자 [심화] 🎛 (0) | 2023.06.17 |
[JAVA] ✏️ 별찍기 버전 4 ! (다이아몬드 심화(입출력)) ⭐️ (0) | 2023.06.15 |
[JAVA] ✏️ 별찍기 버전 4 ! (다이아몬드) ⭐️ (0) | 2023.06.15 |
[JAVA] ✏️ 별찍기 버전 3 ! (피라미드) ⭐️ (2) | 2023.06.15 |