패턴 프로그램은 면접에서 인터뷰 대상자의 논리적 사고 능력을 이해하기 위해 많이 사용됩니다. 피라미드 패턴은 매우 인기가 있으며 한 번 생성 방법의 논리를 이해하면 동일한 결과물을 얻기 위한 코드 작성은 쉬운 작업입니다.
자바에서의 피라미드 패턴 프로그램
여기서 숫자, 기호 등을 사용하여 다양한 피라미드 패턴을 만드는 몇 가지 예제를 제공합니다. 또한 자바 프로그램에서 역 피라미드 패턴을 만드는 몇 가지 예제를 살펴볼 것입니다. 코드를 간단하게 유지하여 쉽게 이해할 수 있도록 노력하겠습니다.
숫자의 피라미드 패턴
첫 번째 패턴을 살펴보면 각 행에는 동일한 숫자가 동일한 횟수로 인쇄됩니다. 그러나 각 행에는 “행 – 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

증가하는 숫자의 피라미드 패턴
다음은 패턴 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