본문 바로가기
Back-End/Java

Java 예제(1)

by newny 2023. 3. 14.
반응형

문1) 대, 소문자의 갯수를 각각 구하시오

char[] ch = { 'T', 'i', 's','t', 'O', 'r', 'Y'};
int low = 0, up = 0;
for(int i=0; i<size; i++) {
    if(ch[i]>='a' && ch[i]<='z') low++;
    else if (ch[i]>='A' && ch[i]<='Z') up++;
}
System.out.println("대문자: " + up + ", 소문자: " + low);

 
문2) 대, 소문자를 서로 바꿔서 출력하시오

char[] ch = { 'T', 'i', 's','t', 'O', 'r', 'Y'};
for(int i=0; i<size; i++) {
    if(ch[i]>='a' && ch[i]<='z') {
        System.out.print((char)(ch[i] - 32));
    } else if (ch[i]>='A' && ch[i]<='Z') {
        System.out.print((char)(ch[i] + 32));
    }
}

 
문3) 모음의 갯수를 구하시오 (A,E,I,O,U,a,e,i,o,u)

char[] ch = { 'T', 'i', 's','t', 'O', 'r', 'Y'};
char[] vowels = {'A','E','I','O','U','a','e','i','o','u'};
    int count = 0;
    for(int i=0; i<size; i++) {
        for(int j=0; j<vowels.length; j++) {
            if(ch[i] == vowels[j]) count++;
        }
    }
    System.out.println("모음의 갯수: " + count);
    /*
            다른풀이
            모든 문자를 소문자 또는 대문자로 바꾼 후 갯수 구하기
        for(int i=0; i<size; i++) {
            char c=ch[i];
            if(c>='A' && c<='Z') {
                c = (char)(ch[i] + 32);
            }
            switch (c) {
                case 'a':
                case 'e':
                case 'i':
                case 'o':
                case 'u': count++;
            }
        }
        System.out.printf("\n모음의 갯수: %d\n", count);
	*/

 
문4) 각행의 모음의 갯수를 구하시오

char[] ch = { 'T', 'i', 's','t', 'O', 'r', 'Y'};
char[] vowels = {'A','E','I','O','U','a','e','i','o','u'};
count = 0;
char[][] str = {
        {'Y','e','a','r'},
        {'M','o','n','t','h'},
        {'D','a','t','e'}
};
for(int i=0; i<str.length; i++) {
    for(int j=0; j<str[i].length; j++) {
        for(int a=0; a<vowels.length; a++) {
            if(str[i][j] == vowels[a])  count++;
        }
    }
    System.out.printf("str[%d]행 : %d\n", i, count);
    count=0;
}

 
문5) 대각선 방향의 각 요소의 합을 구하시오

int sum = 0;
int[][] num = {
        {4,3,2},
        {5,9,1},
        {6,8,7}
};
for(int i=0; i<num.length; i++) {
    sum += num[i][i];
}
System.out.printf("대각선 (↘) 방향의 합 : %d\n", sum);

sum = 0;
for(int i=0; i<num.length; i++) {
    sum += num[i][num.length-1-i];
}
System.out.printf("대각선 (↙) 방향의 합 : %d\n", sum);

 
문6) 아래와 같이 출력하는 코드를 작성하시오

-------------------------------------------------------------------
1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료
-------------------------------------------------------------------
선택>1
학생수>3
-------------------------------------------------------------------
1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료
-------------------------------------------------------------------
선택>2
scores[0]: 85
scores[1]: 95
scores[2]: 93
-------------------------------------------------------------------
1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료
-------------------------------------------------------------------
선택>3
scores[0]: 85
scores[1]: 95
scores[2]: 93
-------------------------------------------------------------------
1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료
-------------------------------------------------------------------
선택>4
최고 점수: 95
평균 점수: 91.0
-------------------------------------------------------------------
1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료
-------------------------------------------------------------------
선택>5
프로그램 종료

import java.util.Arrays;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int stuNum = 0;
        boolean run = true;
        int[] scores = null;

        while (run) {
            System.out.println("------------------------------------------------------");
            System.out.println("1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료");
            System.out.println("------------------------------------------------------");
            System.out.print("선택>");
            String num = scanner.nextLine();
            
            if(num.equals("1")) {
                System.out.print("학생수>");
                stuNum = Integer.parseInt(scanner.nextLine());

            } else if (num.equals("2")) {
                scores = new int[stuNum];
                for(int i=0; i<stuNum; i++) {
                    System.out.print("scores[" + i + "]: ");
                    scores[i] = Integer.parseInt(scanner.nextLine());
                }

            } else if (num.equals("3")) {
                for(int i=0; i<stuNum; i++) {
                    System.out.println("scores[" + i + "]: " + scores[i]);
                }

            } else if (num.equals("4")) {
                Arrays.sort(scores);
                int sum = 0;
                System.out.println("최고 점수: " + scores[stuNum-1]);
                for(int i=0; i<stuNum; i++) {
                    sum += scores[i];
                }
                double aver = (double)sum/stuNum;
                System.out.println("평균 점수: " + aver);

            } else if (num.equals("5")) {
                System.out.println("프로그램 종료");
                run = false;
            }
        }
    }
}

 

반응형

'Back-End > Java' 카테고리의 다른 글

Java 과제 - 정렬 알고리즘 코드 작성  (0) 2023.03.14
Java(2)  (0) 2023.03.14
Java(1)  (0) 2023.03.13

댓글