이전 별 찍기 문제를 풀어 보셨는데 잘 이해가 되셨나요? 어렵게 느낄 수 있지만 적으면서 차분히 보셨다면 분명히 이해를 하실 수 있습니다. 그럼 이 문제보다 좀 더 난이도 있는 별 찍기 문제가 있지 않을 까요? 저 또한 당연히 더 있을 거라고 생각을 하고 있습니다.
이전 스물 걸음에서 나온 별 찍기 문제를 생각하고 활용 하여 그 다음 별 찍기 문제를 풀어 보신다면 분명히 실력 향상에 도움이 되실 겁니다.
이번 별 찍기 2의 문제 같은 경우에는 좀 더 생각을 많이 하여서 반복문 활용에 대한 이해를 높이시고 만드셔야 풀릴 수 있는 문제입니다. 그렇기 때문에 반복문 조합이나 중첩에 중점을 두시고 푸신다면 분명히 이 글을 읽은 효과가 있을 수 있습니다.
현재까지 배운 내용인 변수, 연산자, 입력문, 출력문, 조건문, 반복문, break문, continue문을 모두 자유롭게 사용을 해서 문제에 대한 결과를 만들어 내시면 됩니다.
※ 정답은 하나가 아닙니다. 문제의 대한 결과가 동작을 한다면 정답입니다. 밑에 나오는 정답은 참고를 하시면 됩니다.
※ 결과에 대한 테스트를 예시로만 하는 것보다 여러가지를 하셔서 생각하는 결과로 나오는 확인을 하시는 것이 더욱 더 좋습니다.
위 문제가 실행 결과 입니다.
콘솔에 출력이 위와 같이 출력이 되면 됩니다.
위 문제를 Class를 생성하고 Main문에 소스를 구현해 주세요.
실행 관련 걸음 : 다섯 걸음, 여섯걸음
참고해주세요.
4번 문제
5번 문제
public static void main(String[] args) {
// TODO Auto-generated method stub
//4.피라미드
for(int i = 0;i<5;i++) {
for(int j = 4;j>i;j--) {
System.out.print(" ");
}
for(int k = 0;k<=i*2;k++) {
System.out.print("*");
}
System.out.println();
}
//5. 다이아 몬드
for(int i = 0;i<3;i++) {
for(int j = 2;j>i;j--) {
System.out.print(" ");
}
for(int k = 0;k<=i*2;k++) {
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();
}
}
생각을 해보기
처음 이 문제를 해결을 할 때 중첩 반복문을 사용을 하게 됩니다. 바로 이해가 안될 수 있습니다. 그러면 직접 종이에 반복문 돌아가는 경우의 수와 값을 적고 이해를 하시면 공부에 도움이 될 수 있습니다.
※ 꼭 종이일 필요는 없습니다. 하얀 곳에 적으면서 정리를 해보세요.