문제
* ** *** **** *****
1. 하드 코딩
package ex03;
public class Prc03 {
public static void main(String[] args) {
// 1. 끝에서 부터 * 1개
System.out.print(" ");
System.out.print(" ");
System.out.print(" ");
System.out.print(" ");
System.out.print("*");
System.out.println();
// 2. 끝에서 부터 * 2개
System.out.print(" ");
System.out.print(" ");
System.out.print(" ");
System.out.print("*");
System.out.print("*");
System.out.println();
// 3. 끝에서 부터 * 3개
System.out.print(" ");
System.out.print(" ");
System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.println();
}
}
- 공백은 1개씩 줄어들고, *의 갯수가 1개씩 늘어남 (패턴)
2. 반복문 사용해서 바꾸기
package ex03;
public class Prc03 {
public static void main(String[] args) {
// 1. 끝에서 부터 * 1개
for (int i = 0; i < 4; i++) {
System.out.print(" ");
}
for (int j = 0; j < 1; j++) {
System.out.print("*");
}
System.out.println();
// 2. 끝에서 부터 * 2개
for (int i = 0; i < 3; i++) {
System.out.print(" ");
}
for (int j = 0; j < 2; j++) {
System.out.print("*");
}
System.out.println();
// 3. 끝에서 부터 * 3개
for (int i = 0; i < 2; i++) {
System.out.print(" ");
}
for (int j = 0; j < 3; j++) {
System.out.print("*");
}
System.out.println();
// 4. 끝에서 부터 * 4개
for (int i = 0; i < 1; i++) {
System.out.print(" ");
}
for (int j = 0; j < 4; j++) {
System.out.print("*");
}
System.out.println();
// 5. 끝에서 부터 * 5개
for (int i = 0; i < 0; i++) {
System.out.print(" ");
}
for (int j = 0; j < 5; j++) {
System.out.print("*");
}
System.out.println();
}
}
- System.out.print(” “)가 반복되어, 숫자가 1씩 감소하는 반복문 사용하고 변수 찾기
- System.out.print(”*”)가 반복되어, 숫자가 1씩 늘어나는 반복문 사용하고 변수 찾기
3. 변수 선언
package ex03;
public class Prc03 {
public static void main(String[] args) {
int h = 4;
int s = 1;
// 1. 끝에서 부터 * 1개
for (int i = 0; i < h; i++) {
System.out.print(" ");
}
for (int j = 0; j < s; j++) {
System.out.print("*");
}
System.out.println();
// 2. 끝에서 부터 * 2개
h = h - 1;
for (int i = 0; i < h; i++) {
System.out.print(" ");
}
s++;
for (int j = 0; j < s; j++) {
System.out.print("*");
}
System.out.println();
// 3. 끝에서 부터 * 3개
// 2. 끝에서 부터 * 2개
h = h - 1;
for (int i = 0; i < h; i++) {
System.out.print(" ");
}
s++;
for (int j = 0; j < s; j++) {
System.out.print("*");
}
System.out.println();
// 4. 끝에서 부터 * 4개
// 2. 끝에서 부터 * 2개
h = h - 1;
for (int i = 0; i < h; i++) {
System.out.print(" ");
}
s++;
for (int j = 0; j < s; j++) {
System.out.print("*");
}
System.out.println();
// 5. 끝에서 부터 * 5개
h = h - 1;
for (int i = 0; i < h; i++) {
System.out.print(" ");
}
s++;
for (int j = 0; j < s; j++) {
System.out.print("*");
}
System.out.println();
}
}
- System.out.print(" ")의 반복문의 변수(for (int i =0; i < 4; i++)를 h로 선언
- h가 1씩 감소하는 로직 생성 (h = h - 1;)
- System.out.print("*")의 반복문의 변수(for (int j =0; j < 4; j++)를 s로 선언
- s가 1씩 증가하는 로직 생성(s++;)
4. 모든 코드 통일
package ex03;
public class Prc03 {
public static void main(String[] args) {
int h = 5;
int s = 0;
// 1. 끝에서 부터 * 1개
h = h - 1;
for (int i = 0; i < h; i++) {
System.out.print(" ");
}
s++;
for (int j = 0; j < s; j++) {
System.out.print("*");
}
System.out.println();
// 2. 끝에서 부터 * 2개
h = h - 1;
for (int i = 0; i < h; i++) {
System.out.print(" ");
}
s++;
for (int j = 0; j < s; j++) {
System.out.print("*");
}
System.out.println();
// 3. 끝에서 부터 * 3개
h = h - 1;
for (int i = 0; i < h; i++) {
System.out.print(" ");
}
s++;
for (int j = 0; j < s; j++) {
System.out.print("*");
}
System.out.println();
// 4. 끝에서 부터 * 4개
h = h - 1;
for (int i = 0; i < h; i++) {
System.out.print(" ");
}
s++;
for (int j = 0; j < s; j++) {
System.out.print("*");
}
System.out.println();
// 5. 끝에서 부터 * 5개
h = h - 1;
for (int i = 0; i < h; i++) {
System.out.print(" ");
}
s++;
for (int j = 0; j < s; j++) {
System.out.print("*");
}
System.out.println();
}
}
1번과 2, 3, 4, 5번의 코드가 다르다 (아래 코드 참고)
int h = 4;
int s = 1;
// 1. 끝에서 부터 * 1개
// ?? 1번에는 없다.
for (int i = 0; i < h; i++) {
System.out.print(" ");
}
// ?? 1번에는 없다.
for (int j = 0; j < s; j++) {
System.out.print("*");
}
System.out.println();
// 2. 끝에서 부터 * 2개
h = h - 1; // 2번 부터 있다.
for (int i = 0; i < h; i++) {
System.out.print(" ");
}
s++; // 2번 부터 있다.
for (int j = 0; j < s; j++) {
System.out.print("*");
}
System.out.println();
- int h = 4; 를 int h = 5; 으로 변경
- int s = 1; 를 ins s = 0; 으로 변경
5. 공통 모듈 생성 후 조건문 사용
package ex03;
public class Prc03 {
public static void main(String[] args) {
int h = 5;
int s = 0;
// 1. 끝에서 부터 * 1개
for (int k = 0; k < 5; k++) {
h = h - 1;
for (int i = 0; i < h; i++) {
System.out.print(" ");
}
s++;
for (int j = 0; j < s; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
Share article