반응형

 

 

👇 공부한 자료들의 실제 소스파일들을 기록해놓은 공간입니다 👇

 

 

 

 

이중 for문 들어가기 전 간단 정리

 

 

 

 

 

 

문제 1

아래 출력과 똑같이 출력하라

2중 for문 사용 

1*1=1  1*2=2   1*3=3
2*1=2  2*2=4   2*3=6
3*1=3  3*2=6   3*3=9
4*1=4  4*2=8   4*3=12

public static void main(String[] args) {  
    for (int i = 1; i <= 4; i++) {  
        for (int j = 1; j <= 3 ; j++) {  
            System.out.print(i + " * " + j + " = " + i*j + "\t");  
        }  
        System.out.println(" ");  
    }  
}

 

 

 

 

 

 

 

문제 2

별 찍기

* * * * *
* * * * 
* * * 
* *
*

 

해당 모양처럼 별을 출력하라

for (int i = 0; i < 5; i++) {  
    for (int j = 5; j > i; j--) {  
        System.out.print(" * ");  
    }  
    System.out.println(" ");  
}

 

 

 

 

 

 

 

문제 3

해당 모양으로 출력하라

0 0 0 *
0 0 * * * 
0 * * * * *
* * * * * * *

public static void main(String[] args) {  
    for (int i = 1; i <=4 ; i++) {  
        for (int j = 1; j+i <= 4; j++) {  
            System.out.print(" 0 ");  
        }  
        for (int j = 4-i ; j < i+3; j++) {  
                System.out.print(" * ");  
        }  
        System.out.println(" ");  
    }

 

 

 

 

 

 

 

 

 

 

문제 4

해당내용으로 출력하세요 

* * * * * * *
0 * * * * * 
0 0 * * * 
0 0 0 * 

 

 

 

 

public static void main(String[] args) {  
    for (int i = 1; i <= 4 ; i++) {  
        for (int j = 1; i-j >= 1 ; j++) {  
            System.out.print(" 0 ");  
        }  
        for (int j = i; i+j<= 8 ; j++) {  
            System.out.print(" * ");  
        }  
        System.out.println(" ");  
    }  
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

문제 5

int [] a ={34,55,23,56,34,45,34};
40보다 큰 수는 모두 몇 개인가?

 

public static void main(String[] args) {  
    int[] a = {34, 55, 23, 56, 34, 45, 34};  
    int cnt = 0;  
  
    for (int i = 0; i < a.length - 1; i++) {  
        int tmp = 40;  
        if (tmp < a[i]) {  
            cnt++;  
        }  
    }  
  
    System.out.println(" 40 보다 큰 수 개수 : " + cnt);  
}

 

 

 

 

 

 

 

 

 

 

 

 

 

문제 6

int [] a ={34,55,23,56,34,45,34};
int[] b ={36,49};
b배열의 값보다 큰 값이 a 배열의 값에 모두 몇 개가 있는가?
각각 카운팅 하시오 
출력은
 a 배열의 값에는  36 번호보다 큰 숫자가?? 개 있습니다.
 a 배열의 값에는  49 번호보다 큰 숫자가?? 개 있습니다.

 

public static void main(String[] args) {  
    int[] a ={34,55,23,56,34,45,34};  
    int[] b ={36,49};  
    int bCnt = 0;  
    for (int i = 0; i < b.length; i++) {  
        for (int j = 0; j < a.length; j++) {  
            if (b[i] < a[j]){  
                bCnt++;  
            }  
        }  
        System.out.println(" [a] 배열의 값에 " + b[i] + "보다 큰 숫자는 " + bCnt + "개 있습니다.");  
        bCnt=0;  
    }  
}

 

 

 

 

 

 

 

 

 

 

 

 

문제 7

거스름돈 구하기   
100000원짜리 0개, 
10000원짜리 0개, 
1000원짜리 0개, 
100원짜리 0개, 
10원짜리 0개
조건 : /나 % 연산자는 각각 최대 두 번씩 사용가능
   단, 거스름돈은 만천 원이 최대 값이다. 
int money=4570;  // 가격
int pay = 10000;  //지불금액

 

public static void main(String[] args) {  
    int money = 4570;  // 가격  
    int pay = 100000;  //지불금액  
    int jan = pay - money;  
    // 만원 짜리가 거스름돈의 최대이다.  
    for (int i = 10000; i > 0; i=i/10 ) {  
        System.out.println( i + "원 짜리 " + jan / i + "개 입니다.");  
        jan = jan % i;  
    }  
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

문제 8

int [] pang={1,0,0,0,2,3,4,4,6,2,2,2,2,5}  
-이중 for  사용
애니팡 게임의 일부분 인다. 게임의 캐릭터는 숫자로 구분한다.
가로에 같은 캐릭터가 3개 이상이면 제거 대상이다.
제거 대상 캐릭터 번호와 개수, 시작위치 인덱스를 모두 출력하시오.

 

public static void main(String[] args) {  
    int[] pang = {1, 0, 0, 0, 2, 3, 4, 4, 6, 2, 2, 2, 2, 5};  
    int cnt = 0;  
    int cntIdx = 0;  
    for (int i = 0; i < pang.length; i++) {  
        cnt = 0;  
        for (int j = i; j < pang.length; j++) {  
            if (pang[i] == pang[j]) {  
                cnt++;  
            } else {  
                break;  
            }  
            if (cnt == 1){  
                cntIdx = i;  
            }  
        }  
        if (cnt >= 3) {  
            System.out.println(pang[i] + "번 캐릭터는 " + cnt + "개 연속됩니다. 캐릭터 시작위치는 " + (cntIdx+1) + " 입니다. ");  
        }  
        i += cnt - 1;  
    }  
}

 

 

 

 

 

 

 

 

 

 

 

 

 

문제  9.  10

9. 똑같이 출력하세요

0 0 0 *
0 0 * * *
0 * * * * *
* * * * * * *
0 * * * * * 
0 0 * * *
0 0 0 *

public static void main(String[] args) {  
    for (int i = 1; i <=4 ; i++) {  
        for (int j = 1; j < 3+i ; j++) {  
            if ( j <= 5-i ){  
                System.out.print(" 0 ");  
            } else {  
                System.out.print(" * ");  
            }  
        }  
        System.out.println(" ");  
    }  
    for (int i = 0; i < 4; i++) {  
        for (int j = 1; j <= i; j++) {  
            System.out.print(" 0 ");  
        }  
        for (int j = 1; j <= (4*2-1) - (i * 2); j++) {  
            System.out.print(" * ");  
        }  
        System.out.println(" ");  
    }  
}

10.  for 문을 2번만 사용하여 똑같이 출력하시오

(if 개수는 상관없음)

public static void main(String[] args) {  
    for (int i = 1; i <=7 ; i++) {  
        int tmp = 4 - i;  
        if (tmp < 0 ){  
            tmp *= -1;  
        }  
        for (int j = 1; j <= (4-tmp)+3 ; j++) {  
            if ( tmp < j) {  
                System.out.print(" * ");  
            } else {  
                System.out.print("   ");  
            }  
        }  
        System.out.println(" ");  
    }  
}

 

 

 

반응형
유리쯔의일상