
👇 공부한 자료들의 실제 소스파일들을 기록해놓은 공간입니다 👇
이중 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(" ");
}
}

'👩🏻💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞 > ⠀⠀⠀⠀ Jᴀᴠᴀ' 카테고리의 다른 글
2023/10/10🐰 반복문 키워드 (0) | 2023.10.18 |
---|---|
2023/10/06🌱 지금까지 배운 자바테스트 (1) | 2023.10.10 |
2023/10/04✨ break & continue (1) | 2023.10.04 |
2023/09/27🌱 배열과 단일for문을 사용한 문제풀이 (0) | 2023.09.29 |
2023/09/26🤔 반복문과 배열 문제 풀기 (0) | 2023.09.29 |

👇 공부한 자료들의 실제 소스파일들을 기록해놓은 공간입니다 👇
이중 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(" ");
}
}

'👩🏻💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞 > ⠀⠀⠀⠀ Jᴀᴠᴀ' 카테고리의 다른 글
2023/10/10🐰 반복문 키워드 (0) | 2023.10.18 |
---|---|
2023/10/06🌱 지금까지 배운 자바테스트 (1) | 2023.10.10 |
2023/10/04✨ break & continue (1) | 2023.10.04 |
2023/09/27🌱 배열과 단일for문을 사용한 문제풀이 (0) | 2023.09.29 |
2023/09/26🤔 반복문과 배열 문제 풀기 (0) | 2023.09.29 |