[개발] - Java/간단한 Quiz
JAVA 별찍기 (5) 마름모(다이아몬드) 모양
완벽한 장면
2023. 3. 23. 01:50
이건 강사 선생님 풀이 기반으로 코드 해석(이해에 초점)
만들어야 하는 모양
풀이 코드
public class Star05_Ex {
public static void main(String[] args) {
for(int i = 0;i<3;i++) { // 0 1 2 3 4
for(int j = 2; j>i; j--) { // 4 3 2 1 // 4 3 2 // 4 3 // 4 // 안찍힘
System.out.print(" ");
}
for(int j = 0;j<=i*2;j++) { // 0 // 0 1 2 // 0 1 2 3 4 // 0 1 2 3 4 5 6 // 0 1 2 3 4 5 6 7 8
System.out.print("*");
}
System.out.println();
}
for(int i = 0;i<2;i++) {
for(int j =0;j<=i;j++) {
System.out.print(" ");
}
for(int j = 3; j>i*2;j--) {
System.out.print("*");
}
System.out.println();
}
}
}
해석 브레인스토밍
- 피라미드(삼각형) 두 개가 이어붙여져 있는 걸로 해석하고 풀이 전략을 짜면 된다.
- 위 삼각형은 요거,
- 아래 삼각형은 요거.
- 위 삼각형은 3행이니까 조건식이 i <3 이 된다.(0, 1, 2)
- 첫 행의 공백의 개수는 2칸, 그러니까 초기식이 int i = 2
- 별의 개수는 1 => 3 => 5개... 두 배씩 증가. 그래서 j<=i*2
- 반대로 아래 삼각형은 행 수가 2개 그래서 i<2 로 시작.
- 공백은 없다가, 2개가 되니까 j는 j++
- 별의 개수는 3 => 1개 (2배가 줄어들지)
- 그래서 위 삼각형의 중첩 for문과 아래 역삼각형의 중첩 for문을 붙여주면 된다.
728x90
반응형