티스토리 뷰

public class Q15 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("직각 이등변 삼각형을 출력합니다.");
        System.out.print("출력할 단수 : ");
        int n = scanner.nextInt();

        System.out.println("출력하고 싶은 삼각형을 입력하세요.");
        System.out.println("LB LU RB RU");
        System.out.print("출력할 삼각형 : ");
        String triangle = scanner.next();

        if (triangle.contains("LB")) {
            triangleLB(n);
        } else if (triangle.contains("LU")) {
            triangleLU(n);
        } else if (triangle.contains("RB")) {
            triangleRB(n);
        } else if (triangle.contains("RU")) {
            triangleRU(n);
        }
    }

    // 왼쪽 아래
    static void triangleLB(int n) {
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

    // 왼쪽 위
    static void triangleLU(int n) {
        for (int i = n; i >= 1; i--) {
            for (int j = i; j >= 1; j--) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

    // 오른쪽 아래
    static void triangleRB(int n) {
        for (int i = 1; i <= n; i++) {
            for (int j = 10; j >= i; j--) {
                System.out.print(" ");
            }
            for (int k = 1; k <= i; k++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

    // 오른쪽 위
    static void triangleRU(int n) {
        for (int i = n; i >= 1; i--) {
            for (int j = 10; j >= i; j--) {
                System.out.print(" ");
            }
            for (int k = i; k >= 1; k--) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
    
}

(1)

 

 

public class Triangle_01_15 {
	// 왼쪽 아래가 직각인 이등변삼각형을 출력
	static void triangleLB(int n) {
		for (int i = 1; i <= n; i++) { 			
			for (int j = 1; j <= i; j++) 	
				System.out.print('*');
			System.out.println(); 			
		}
	}

	// 왼쪽 위가 직각인 이등변삼각형을 출력
	static void triangleLU(int n) {
		for (int i = 1; i <= n; i++) { 			
			for (int j = 1; j <= n - i + 1; j++)
				System.out.print('*');
			System.out.println(); 				
		}
	}

	// 오른쪽 위가 직각인 이등변삼각형을 출력
	static void triangleRU(int n) {
		for (int i = 1; i <= n; i++) { 			
			for (int j = 1; j <= i - 1; j++) 	
				System.out.print(' ');
			for (int j = 1; j <= n - i + 1; j++) 
				System.out.print('*');
			System.out.println();				
		}
	}

	// 오른쪽 아래가 직각인 이등변삼각형을 출력
	static void triangleRB(int n) {
		for (int i = 1; i <= n; i++) { 			
			for (int j = 1; j <= n - i; j++) 
				System.out.print(' ');
			for (int j = 1; j <= i; j++) 	
				System.out.print('*');
			System.out.println(); 			
		}
	}

	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);
		int n;

		System.out.println("삼각형 모양으로 나타냅니다.");

		do {
			System.out.print("단수는 :");
			n = stdIn.nextInt();
		} while (n <= 0);

		System.out.println("왼쪽 아래가 직각인 삼각형");
		triangleLB(n); // 왼쪽 아래가 직각인 이등변삼각형

		System.out.println("왼쪽 위가 직각인 삼각형");
		triangleLU(n); // 왼쪽 위가 직각인 이등변삼각형

		System.out.println("오른쪽 위가 직각인 삼각형");
		triangleRU(n); // 오른쪽 위가 직각인 이등변삼각형

		System.out.println("오른쪽 아래가 직각인 삼각형");
		triangleRB(n); // 오른쪽 아래가 직각인 이등변삼각형
	}
}

(2)

 

- 내가 구현한 코드에서 오른쪽 정렬 하는게 좀 이상한듯 ?

1) n > 0 이상으로 해서 양수만 받게 했어야 했는데 빠졌음.

2) 오른쪽 정렬 방법이 생각이 안나서 10부터 시작하는걸로 했는데 이런식으로하면 10단 이상부터는 올바른 출력이 안됨.

 

 

※참조
Do it! 자료구조와 함께 배우는 알고리즘 입문

'PS > etc' 카테고리의 다른 글

chapter1) 숫자 피라미드 찍기  (0) 2020.07.07
chapter1) 피라미드 별 찍기  (0) 2020.07.07
chapter1) 사각형 별찍기  (0) 2020.07.06
chapter1) 덧셈표 작성  (0) 2020.07.06
chapter1) 곱셈표 작성  (0) 2020.07.06