반복문 ver. hard 문제 풀이(8~14, 19)
배열
아래의 코드들은 해당 패키지에서 작성되었다.(반복문 문제 작성 중)
package com.kh.practice.chap02.loop;
import java.util.Scanner;
public class LoopPractice {
}
public void practice8() {
// *
// **
// ***
// ****
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int num = sc.nextInt();
if(num<1) {
System.out.println("다시 입력해주세요. ");
practice8();
return;
}
for(int i=1; i<=num; i++) {
for(int j=1; j<=i; j++) {
System.out.print("*");
}
System.out.println();
}
}
public void practice9() {
// ****
// ***
// **
// *
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int num = sc.nextInt();
if(num<1) {
System.out.println("다시 입력해주세요.");
practice9();
return;
}
for(int i=1; i<=num; i++) {
for(int j=num; j>=i; j--) {
System.out.print("*");
}
System.out.println();
}
}
public void practice10() {
// *
// **
// ***
// ****
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int num = sc.nextInt();
for (int k=0; k<num; k++) {
for(int i=1; i<num-k; i++) {
System.out.print(" ");
}
for(int j=0; j<=k; j++) {
System.out.print("*");
}
System.out.println();
}
}
문제 10번의 경우 처음에 접근을 어떻게 해야 할지 몰라서 혼자서 이리저리 돌려봤더니 문제 11번과 유사하게 나와 버렸었다. 혼자 푸는 시간을 갖고 강사님의 빈칸 출력하고 *을 찍는 for문을 따로 만들어서 규칙을 찾으면 된다는 말을 듣고 스스로 풀 수 있었다.
public void practice11() {
// ****
// ***
// **
// *
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int num = sc.nextInt();
for (int k=num; k>0; k--) {
for(int i=0; i<num-k; i++) { // 0 1 2 3 4
System.out.print(" ");
}
for(int j=0; j<k; j++) { // 4 3 2 1
System.out.print("*");
}
System.out.println();
}