728x90
반응형
높이 입력받아 피라미드 모양으로 별 출력하기
피라미드 모양으로 *을 출력하려면 공백의 개수와 *의 개수를 고려해야 한다.
for문으로 높이 h가 4라고 했을 때 공백과 별의 개수를 살펴보면
* -> i = 0일 때 공백 3개, 별 1개
** -> i = 1일 때 공백 2개, 별 2개
*** -> i = 2일 때 공백 1개, 별 3개
**** -> i = 3일 때 공백 0개, 별 4개
공백 = h - i - 1개, 별 = i + 1개임을 알 수 있다.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int height = sc.nextInt();
for (int i = 0; i < height; i++) {
System.out.printf("%s%s\n", " ".repeat(height - i - 1), "*".repeat(i + 1));
}
}
이렇게 코드를 작성할 수 있다.
하지만 출력결과를 확인해보면 피라미드 모양이 아닌 직각 삼각형 모양이 출력된다.
그래서 공백 개수는 그대로 출력하되 별의 개수를 홀수로 찍어야한다.
별의 개수는 홀수이므로 2개씩 증가하게 된다.
따라서 다음과 같이 작성할 수 있다.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int height = sc.nextInt();
for (int i = 0; i < height; i++) {
System.out.printf("%s%s\n", " ".repeat(height - i - 1), "*".repeat(2 * i + 1));
}
}
그럼 아래와 같이 예쁜 피라미드가 출력된다. 😎
728x90
반응형
'멋쟁이 사자처럼 > TIL' 카테고리의 다른 글
230517 5주 3일차 TIL. 스택, DB (3) | 2023.05.17 |
---|---|
230516 5주 2일차 TIL. 선택정렬, 삽입정렬 (1) | 2023.05.16 |
230515 5주 1일차 TIL. 버블 정렬, EC2, Docker (1) | 2023.05.15 |
230511 4주 4일차 TIL. List, ArrayList (1) | 2023.05.11 |
230503 3주 3일차 TIL. Codeup 1274, 프로그래머스 소인수분해 (0) | 2023.05.03 |