여러가지 별찍기 연습을 해보자.
반복문과 조건문의 연습에는 과연 별찍기 만한 것이 없다.
아래 5가지 별 찍기 타입이 있다.
타입 | 모양 |
1 | *** *** *** |
2 | * ** *** |
3 | * ** *** |
4 | * *** ***** |
5 | * *** * |
별 출력 행의 수 N과 별 타입 T가 주어질 때 해당 별 모양을 출력하는 프로그램을 작성하세요.
(N은 홀수)
N | T | 출력 |
3 | 1 | *** *** *** |
3 | 2 | * ** *** |
3 | 3 | * ** *** |
3 | 4 | * *** ***** |
7 | 5 | * *** ***** ******* ***** *** * |
public static void solution(int n, int type) {
if (type == 1) {
type1(n);
} else if (type == 2) {
type2(n);
} else if (type == 3){
type3(n);
} else if (type == 4) {
type4(n);
} else if (type == 5) {
type5(n);
}
}
public static void solution(int n, int type) {
switch (type){
case 1:
type1(n);
break;
case 2:
type2(n);
break;
case 3 :
type3(n);
break;
case 4:
type4(n);
break;
case 5:
type5(n);
break;
}
}
public static void type1(int n) {
System.out.println("== Type1 ==");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println();
}
public static void type2(int n) {
System.out.println("== Type2 ==");
for (int i = 0; i < n; i++) {
for (int j = 0; j < i+1; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println();
}
public static void type3(int n) {
System.out.println("== Type3 ==");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (j < n-i-1) {
System.out.print(" ");
} else {
System.out.print("*");
}
}
System.out.println();
}
System.out.println();
}
public static void type3(int n) {
System.out.println("== Type3 ==");
for (int i = 0; i < n; i++) {
for (int k = 0; k <n-1-i; k++) {
System.out.print(" ");
}
for (int j = 0; j < i+1; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println();
}
public static void type4(int n) {
System.out.println("== Type4 ==");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i - 1; j++) {
System.out.print(" ");
}
for (int j = 0; j < i * 2 + 1; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println();
}
public static void type4(int n) {
System.out.println("== Type4 ==");
for (int i = 0; i < n; i++) {
for (int k = n-i-1; k > 0; k--) {
System.out.print(" ");
}
for (int j = 0; j < (i*2)+1; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println();
}
public static void type5(int n) {
System.out.println("== Type5 ==");
// 상단부
for (int i = 0; i <= n/2; i++) {
for (int j = 0; j < n / 2 - i; j++) {
System.out.print(" ");
}
for (int j = 0; j < i*2 + 1; j++){
System.out.print("*");
}
System.out.println();
}
// 하단부
for (int i = n / 2; i > 0 ; i--) {
for (int j = 0; j < n / 2 + 1 - i; j++){
System.out.print(" ");
}
for (int j = 0; j < i * 2 - 1; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println();
}
public static void type5(int n) {
System.out.println("== Type5 ==");
for (int i = 0; i < n; i++) {
if (i<n/2+1){
for (int k = n/2-i; k > 0; k--) {
System.out.print(" ");
}
for (int j = 0; j < (i*2)+1; j++) {
System.out.print("*");
}
System.out.println();
} else {
for (int k =i-n/2; k>0; k--) {
System.out.print(" ");
}
for (int j = 0; j <(n-i)*2-1; j++) {
System.out.print("*");
}
System.out.println();
}
}
System.out.println();
}
[Java]연습문제5 - 로마숫자 정수로 변환 (0) | 2023.01.08 |
---|---|
[Java] 연습문제5 - 배열 내 가장 넓은 면적 구하기 (0) | 2023.01.08 |
[Java] 연습문제3 - Replace 없이 특정 문자열 원하는 문자로 바꾸기 (1) | 2023.01.07 |
[Java] 연습문제2 - ASCII코드 대소문자 상호 변환 (1) | 2023.01.07 |
[Java] 연습문제1 - 정수 자료형 숫자 거꾸로 변환 (0) | 2023.01.07 |
댓글 영역