자바에서의 피라미드 패턴 프로그램

패턴 프로그램은 면접에서 인터뷰 대상자의 논리적 사고 능력을 이해하기 위해 많이 사용됩니다. 피라미드 패턴은 매우 인기가 있으며 한 번 생성 방법의 논리를 이해하면 동일한 결과물을 얻기 위한 코드 작성은 쉬운 작업입니다.

자바에서의 피라미드 패턴 프로그램

여기서 숫자, 기호 등을 사용하여 다양한 피라미드 패턴을 만드는 몇 가지 예제를 제공합니다. 또한 자바 프로그램에서 역 피라미드 패턴을 만드는 몇 가지 예제를 살펴볼 것입니다. 코드를 간단하게 유지하여 쉽게 이해할 수 있도록 노력하겠습니다.

숫자의 피라미드 패턴

첫 번째 패턴을 살펴보면 각 행에는 동일한 숫자가 동일한 횟수로 인쇄됩니다. 그러나 각 행에는 “행 – i”만큼의 선행 공백이 있습니다. 이 패턴을 인쇄하는 프로그램을 살펴보겠습니다.

package com.journaldev.patterns.pyramid;

import java.util.Scanner;

public class PyramidPattern {

	private static void printPattern1(int rows) {
		// 행에 대한 for 루프
		for (int i = 1; i <= rows; i++) {
			// 숫자 앞의 공백
			int numberOfWhiteSpaces = rows - i;

			// 선행 공백 출력
			printString(" ", numberOfWhiteSpaces);

			// 숫자 출력
			printString(i + " ", i);

			// 다음 줄로 이동
			System.out.println("");
		}
	}

	// 주어진 횟수만큼 문자열을 출력하는 유틸리티 함수
	private static void printString(String s, int times) {
		for (int j = 0; j < times; j++) {
			System.out.print(s);
		}
	}

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		System.out.println("Please enter the rows to print:");
		int rows = scanner.nextInt();
		// System.out.println("Rows = "+rows);
		scanner.close();

		System.out.println("Printing Pattern 1\n");
		printPattern1(rows);

	}

}

위 프로그램을 실행하면 다음 출력이 나타납니다.

Please enter the rows to print:
9
Printing Pattern 1

        1 
       2 2 
      3 3 3 
     4 4 4 4 
    5 5 5 5 5 
   6 6 6 6 6 6 
  7 7 7 7 7 7 7 
 8 8 8 8 8 8 8 8 
9 9 9 9 9 9 9 9 9 
Pyramid Pattern Java Program Output

증가하는 숫자의 피라미드 패턴

다음은 패턴 2를 출력하는 함수입니다. 주목할 중요한 포인트는 선행 공백의 수이며, 그런 다음 숫자가 증가하는 순서로 출력됩니다.

/**
 * 
 * Program to print below pyramid structure
 *      1         
       1 2        
      1 2 3       
     1 2 3 4      
    1 2 3 4 5     
   1 2 3 4 5 6    
  1 2 3 4 5 6 7   
 1 2 3 4 5 6 7 8  
1 2 3 4 5 6 7 8 9 
*/
private static void printPattern2(int rows) {
	// 행에 대한 for 루프
	for (int i = 1; i <= rows; i++) {
		// 숫자 앞의 공백
		int numberOfWhiteSpaces = rows - i;

		// 선행 공백 출력
		printString(" ", numberOfWhiteSpaces);

		// 숫자 출력
		for(int x = 1; x<=i; x++) {
			System.out.print(x+" ");
		}

		// 다음 줄로 이동
		System.out.println("");
	}
}

문자의 피라미드

이것은 정말 간단한 것이며, 계산이나 조작 없이 문자를 출력하기만 하면 됩니다.

/**
 * Program to print following pyramid structure
        *         
       * *        
      * * *       
     * * * *      
    * * * * *     
   * * * * * *    
  * * * * * * *   
 * * * * * * * *  
* * * * * * * * * 

*/
private static void printPattern3(int rows) {
	// 행에 대한 루프
	for (int i = 1; i <= rows; i++) {
		// 숫자 앞의 공백
		int numberOfWhiteSpaces = rows - i;

		// 선행하는 공백 출력
		printString(" ", numberOfWhiteSpaces);

		// 문자 출력
		printString("* ", i);

		// 다음 줄로 이동
		System.out.println("");
	}
}

피라미드 패턴 4 프로그램

/**
* 
*               1 
              1 2 1 
            1 2 3 2 1 
          1 2 3 4 3 2 1 
        1 2 3 4 5 4 3 2 1 
      1 2 3 4 5 6 5 4 3 2 1 
    1 2 3 4 5 6 7 6 5 4 3 2 1 
  1 2 3 4 5 6 7 8 7 6 5 4 3 2 1 
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 
*/

private static void printPattern4(int rows) {
	// 행에 대한 루프
	for (int i = 1; i <= rows; i++) {
		// 숫자 앞의 공백
		int numberOfWhiteSpaces = (rows-i)*2;

		// 선행하는 공백 출력
		printString(" ", numberOfWhiteSpaces);

		// 숫자 출력
		for(int x=1; x0; j--) {
			System.out.print(j+" ");
		}

		// 다음 줄로 이동
		System.out.println("");
	}
}

각 행마다 2*r-1 개의 숫자가 있음에 유의하십시오. 따라서 숫자를 출력하기 전에 (행-i)*2개의 공백이 있습니다. 그런 다음 숫자는 1에서 “i”까지 시작하여 다시 1로 돌아갑니다. 숫자를 출력하는 데 필요한 논리는 이것을 달성하기 위해 두 개의 for 루프가 필요합니다.

자바에서의 피라미드 패턴 5 프로그램

/**
 * 
 *                9 
                8 9 8 
              7 8 9 8 7 
            6 7 8 9 8 7 6 
          5 6 7 8 9 8 7 6 5 
        4 5 6 7 8 9 8 7 6 5 4 
      3 4 5 6 7 8 9 8 7 6 5 4 3 
    2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 
  1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 
*/
private static void printPattern5(int rows) {
	// 행에 대한 루프
	for (int i = rows; i >= 1; i--) {
		// 숫자 앞의 공백
		int numberOfWhiteSpaces = i*2;

		// 선행하는 공백 출력
		printString(" ", numberOfWhiteSpaces);

		// 숫자 출력
		for(int x=i; x=i; j--) {
			System.out.print(j+" ");
		}

		// 다음 줄로 이동
		System.out.println("");
	}
}

문자의 역 피라미드 패턴

여기는 역 피라미드 프로그램의 코드 스니펫입니다.

/**
 * 
* * * * * * * * * 
 * * * * * * * * 
  * * * * * * * 
   * * * * * * 
    * * * * * 
     * * * * 
      * * * 
       * * 
        * 
 */
private static void printPattern6(int rows) {
	// 행에 대한 루프
	for (int i = rows; i >= 1; i--) {
		// 숫자 앞의 공백
		int numberOfWhiteSpaces = rows - i;

		// 선행 공백 출력
		printString(" ", numberOfWhiteSpaces);

		// 문자 출력
		printString("* ", i);

		// 다음 줄로 이동
		System.out.println("");
	}
}

숫자의 역 피라미드 패턴

숫자로 만든 역 피라미드 패턴의 예를 살펴보겠습니다.

	/**
	 * 
9 9 9 9 9 9 9 9 9 
 8 8 8 8 8 8 8 8 
  7 7 7 7 7 7 7 
   6 6 6 6 6 6 
    5 5 5 5 5 
     4 4 4 4 
      3 3 3 
       2 2 
        1 
	 */
private static void printPattern7(int rows) {
	// 행에 대한 루프
	for (int i = rows; i >= 1; i--) {
		// 숫자 앞의 공백
		int numberOfWhiteSpaces = rows - i;

		// 선행 공백 출력
		printString(" ", numberOfWhiteSpaces);

		// 문자 출력
		printString(i+" ", i);

		// 다음 줄로 이동
		System.out.println("");
	}
}

결론

다양한 종류의 피라미드 패턴이 있습니다. 가장 중요한 점은 숫자와 공백이 어떻게 조직되는지에 대한 패턴을 이해하는 것입니다. 패턴을 명확히 이해하면 Java나 다른 프로그래밍 언어로 코드를 쉽게 작성할 수 있습니다. 특정 패턴 프로그램을 찾고 계신 경우 알려주시면 도와드리겠습니다.

추가 자료

Java에서의 문자열 프로그램Java 프로그래밍 면접 질문

전체 코드와 더 많은 프로그래밍 예제는 GitHub 저장소에서 확인할 수 있습니다.

Source:
https://www.digitalocean.com/community/tutorials/pyramid-pattern-programs-in-java