오늘은 18일 과제??또는 문제로 주신 자바를 배운다면 누구나 한번쯤은 무조건 거쳐간 별그리기다 !! 서두를 짧게하고 바로 본론으로 들어갑니다.
총 7개의 문제가 있고, for문 과 if문을 사용해서 풀었다.
조건: 변수 i , j는 무조건 0으로 시작한다.
for문
i 세로줄이고, j 는 가로 줄이다.
보면 별의 갯수와 j의 증가범위가 같다.
그래서 1번 두번째 for문 조건식이 j<=i 이다.
if문
if문 for문보다 생각해야 되는 조건인 공백이 존재해 처음부터 떠오르지는 않았다. 일단은 if문은 5*5 판에 별을 다그린다고 생각하고 공백을 넣은 경우의 수를 if문 조건에 넣으면된다.
공백을 보면 j가 i보다 클때 공백이 발생한다.
그래서 if 문 가로안에 조건은 j>i 이다
for문
for(int i = 0; i < 5; i++) {
for(int j = 0; j <=i; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println("-----------------------");
if문
for(int i = 0; i< 5; i++) {
for(int j = 0; j < 5; j++) {
if( i < j ) {
System.out.print(" ");
}else {
System.out.print("*");
}
}
System.out.println();
for문
i 가 0일 때 j는 0 ~4까지 찍히고, 1일때 j는 3까지, 더보면
i 값이 1씩 증가할 수록 별이 하나씩 줄고 있는 게 확인 가능하다.
그래서 두번 째 for문 조건식을 j <= 4-i 라고 적어주면 된다.
if문
2번 부터는 내가 풀 수는 있었으나 아직 내가 설명하면서 하기에는 아직 어렵다는 걸 느낀다. ㅠㅠ
for문
for(int i = 0; i < 5; i++ ) {
for(int j = 0; j <= 4-i; j++) {
System.out.print("*");
}
System.out.println();
}
if문
for(int i = 0; i < 5 ; i++) {
for(int j = 0; j <5 ; j++) {
if( i > 4-j) {
System.out.print("@");
}else {
System.out.print("*");
}
}
System.out.println();
}
for문
for(int i = 0; i < 5; i++) {
for(int j = 0; j <= 3-i; j++) {
System.out.print(" ");
}
for(int k = 0; k <=i; k++) {
System.out.print("*");
}
System.out.println();
}
if문
for(int i = 0; i < 5; i++) {
for(int j = 0 ; j < 5; j++) {
if( j < 4-i) {
System.out.print("@");
}else {
System.out.print("*");
}
}
System.out.println();
}
for문
for(int i = 0; i < 5; i++) {
for(int j = 0; j <= i-1; j++) {
System.out.print(" ");
}
for(int k = 0; k <= 4-i; k++) {
System.out.print("*");
}
System.out.println();
}
if문
for(int i = 0; i < 5; i++) {
for( int j = 0; j < 5; j++) {
if(j <i) {
System.out.print("@");
}else {
System.out.print("*");
}
}
System.out.println();
}
일단 5,6,7번 까지 문제가 더 있었다. 물론, 열심히 노력한 결과 다행히 다 풀었고, if문으로도 다 풀이는 성공했고 내 생각에 5번 부터는 1,2,3,4번 문제만 활용만 하면 큰 어려움 없이 풀 수 있다. 그래서 따로 풀이는 안적었고 , 물론 if문은 경우의 수를 생각하는게 쉽지않았지만 마지막 7번만 제외하고는 할만한 수준이였다. 솔직히 저번주에 나 였다면 절대로 3번부터 아니 2번부터 막혔을 거다. 정말 신기하게 노력한 만큼 실력이 늘고 있다는 생각이 든다. 잘하는 사람이 보기에는 기초적인거라 실력이 늘었다고 말할 수 없을 지모른다. 근데 내 자신은 내가 제일 잘 알지 않나?? 확실히 사고력이 아주쪼금 늘은 것 같아 상당히 뿌듯하다. 내일 부터 토요일이다 .신나게 공부하러 가자
오늘도 수고 많았다.