열심히 끝까지
[능력 단위 평가] - 6/9 문제 코딩 + 다른 팀 문제 코딩 본문
[3]
입력 : 3
*
***
*****
[2]
*
**
***
****
*****
[1]
*****
****
***
**
*
[ex]
입력 : 0
다시!
입력 : -1
다시!
입력: 1
*
package test;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// [3]번 문제
// 출석번호 10번 노유림
Scanner sc = new Scanner(System.in);
int a = 0; // 아래 for문에서도 쓰임(scope 범위), while문 위에
while(true) { // 계속 반복
System.out.print("입력 : ");
a = sc.nextInt(); // a의 값 입력
if(a>0) { // a값이 0보다 크면 while문 밖으로
break;
}
System.out.println("다시!"); // a가 0보다 작거나 같을 경우 다시 while문 반복
}
for(int i = 1; i<= a; i++) { // 입력한 a값만큼 반복한다(라인)
for(int j = 1; j<=a-i ; j++) { // *의 앞에 공백을 만들기 위한 반복
System.out.print(" ");
}
for(int k = 1; k<=(i*2)-1 ; k++) { // *을 찍기 위한 반복
System.out.print("*");
}
System.out.println(); // 줄 바꾸기
}
}
}
디버깅표(if a = 3일 경우)(+는 공백)
a for문 i i<=a j j<=? k k<=?
---------------------------------------------------------------------------
-1 F
0 F
3 T 1 T 1 T +
2 T +
3 F 1 T *
2 F
2 T 1 T +
2 F 1 T *
2 T *
3 T *
4 F
3 T 1 F 1 T *
2 T *
3 T *
4 T *
5 T *
6 F
4 F
j + i <= 3
==> 결론 : j<= a - i
k <= i*2-1
==> 결론 : k <= i*2 -1
Test[1]
package test;
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = 0;
while(true) {
System.out.print("입력 : ");
a = sc.nextInt();
if(a>0) {
break;
}
System.out.println("다시!");
}
for(int i = 1; i <= a; i++) {
for(int j = 1; j <= i-1; j++) {
System.out.print(" ");
}
for(int k = 1; k <= (a+1)-i; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
디버깅표(a = 5 일때)
i i<=a j j<=i-1 k k<=(a+1)-i
---------------------------------------------------------------------
1 T 1 F 1 T *
2 T *
3 T *
4 T *
5 T *
6 F
2 T 1 T +
2 F 1 T *
2 T *
3 T *
4 T *
5 F
3 T 1 T +
2 T +
3 F 1 T *
2 T *
3 T *
4 F
4 T 1 T +
2 T +
3 T +
4 F 1 T *
2 T *
3 F
5 T 1 T +
2 T +
3 T +
4 T +
5 F 1 T *
2 F
6 F
--------------------------------------------------------------------------------------------
Test[2]
package test;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = 0;
while(true) {
System.out.print("입력 : ");
a = sc.nextInt();
if(a>0) {
break;
}
System.out.println("다시!");
}
for(int i = 1; i <= a; i++) {
for(int j = 1; j<=a-i; j++) {
System.out.print(" ");
}
for(int k = 1; k<=i; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
디버깅표(a = 5일때)
i i<=a j j<=a-i k k<=i
---------------------------------------------------------------------
1 T 1 T +
2 T +
3 T +
4 T +
5 F 1 T *
2 F
2 T 1 T +
2 T +
3 T +
4 F 1 T *
2 T *
3 F
3 T 1 T +
2 T +
3 F 1 T *
2 T *
3 T *
4 F
4 T 1 T +
2 F 1 T *
2 T *
3 T *
4 T *
5 F
5 T 1 F 1 T *
2 T *
3 T *
4 T *
5 T *
6 F
6 F
'디바이스 융합 자바(Java)기반 풀스택 개발자 양성과정(과제)' 카테고리의 다른 글
[수업 내용 발표] - 6/15 발표 자료 PowerPoint (0) | 2022.06.17 |
---|---|
[능력 단위 평가] - 6/17 문제 코딩 (0) | 2022.06.17 |
[10분 테코톡] 던의 JVM의 Garbage Collector 영상정리 (0) | 2022.06.12 |
[10분 테코톡] 제이의 시간복잡도 영상정리 (0) | 2022.06.12 |
[10분 테코톡] 스티치의 빌드와 배포 영상정리 (0) | 2022.06.12 |