13번 문제가 Bonus 02번과 굉장히 비슷하여 이어서 포스팅하겠습니다. 이번에는 학생들의 성적 정보를 문자열로 받아 각 성적 별 학생 수를 출력하는 프로그램을 작성해 보겠습니다. 이 예제는 문자열을 다루는 방법과 조건문을 활용하여 원하는 정보를 추출하는 방법을 익히는 데 도움이 될 것입니다. 비전공자도 쉽게 이해할 수 있도록 최대한 간단하게 설명하겠습니다.
[Java Festival 13] 학생 성적 정보 분석하기
아래와 같이 학생들의 성적정보가 문자열로
선언되어 있을 때 각 성적 별 학생 수를 출력하시오.
먼저 간단하게 작성한 코드를 보겠습니다.
package Ex;
public class Ex13 {
public static void main(String[] args) {
String score = "A,A,B,C,D,A,C,D,D,D,F";
// 성적 문자열을 콤마(,)로 분리하여 배열에 저장
String[] str = score.split(",");
// 각 성적의 학생 수를 저장할 변수 초기화
int aCnt = 0, bCnt = 0, cCnt = 0, dCnt = 0, fCnt = 0;
// 성적 배열을 순회하면서 각 성적의 학생 수를 증가시킴
for (String string : str) {
switch (string) {
case "A":
aCnt++;
break;
case "B":
bCnt++;
break;
case "C":
cCnt++;
break;
case "D":
dCnt++;
break;
case "F":
fCnt++;
break;
}
}
// 결과 출력
System.out.println("A : " + aCnt + "명");
System.out.println("B : " + bCnt + "명");
System.out.println("C : " + cCnt + "명");
System.out.println("D : " + dCnt + "명");
System.out.println("F : " + fCnt + "명");
}
}
1. 성적 문자열 분리
성적 문자열을 콤마(,)로 분리하여 배열에 저장합니다.
- String[] str = score.split(",");: 문자열을 콤마(,)로 분리하여 배열에 저장합니다.
2. 각 성적의 학생 수를 저장할 배열 초기화
각 성적의 학생 수를 저장할 배열을 초기화합니다.
- int[] counts = new int[5];: 각 성적의 학생 수를 저장할 배열을 생성합니다. 배열의 인덱스는 각각 A, B, C, D, F에 대응합니다.
3. 성적 배열을 순회하면서 학생 수 카운트
성적 배열을 순회하면서 각 성적의 학생 수를 카운트합니다.
- switch (grade): 성적에 따라 해당하는 배열의 인덱스를 증가시킵니다.
4. 결과 출력
배열에 저장된 각 성적의 학생 수를 출력합니다.
- System.out.println(...): 각 성적의 학생 수를 출력합니다.
각 성적의 학생 수를 출력하는 부분을 배열을 사용해서 처리하는 방법도 있습니다.
package Ex;
public class Ex13 {
public static void main(String[] args) {
String score = "A,A,B,C,D,A,C,D,D,D,F";
// 성적 문자열을 콤마(,)로 분리하여 배열에 저장
String[] str = score.split(",");
// 각 성적의 학생 수를 저장할 배열 초기화 (A=0, B=1, C=2, D=3, F=4)
int[] counts = new int[5];
// 성적 배열을 순회하면서 학생 수를 증가시킴
for (String grade : str) {
switch (grade) {
case "A":
counts[0]++;
break;
case "B":
counts[1]++;
break;
case "C":
counts[2]++;
break;
case "D":
counts[3]++;
break;
case "F":
counts[4]++;
break;
}
}
// 결과 출력
System.out.println("A : " + counts[0] + "명");
System.out.println("B : " + counts[1] + "명");
System.out.println("C : " + counts[2] + "명");
System.out.println("D : " + counts[3] + "명");
System.out.println("F : " + counts[4] + "명");
}
}
마무리
이번 예제에서는 학생들의 성적 정보를 문자열로 받아 각 성적 별 학생 수를 출력하는 방법을 배웠습니다. 이를 통해 문자열을 분리하고, 각 항목을 카운트하는 방법을 익힐 수 있었습니다. 배열을 활용하여 더 간단하게 문제를 해결하는 방법도 배웠습니다.
프로그래밍에서 문자열을 다루는 능력은 매우 중요합니다. 특히 이번 예제처럼 간단한 문제를 해결하면서도 문자열과 배열의 사용법을 익히는 것은 실무에서도 유용하게 쓰일 수 있습니다. 다양한 문제를 풀어보며 실력을 키워나가길 바랍니다.
프로그래밍을 시작하는 모든 분께 이 예제가 도움이 되길 바랍니다. 앞으로도 흥미롭고 유익한 내용을 준비하여 여러분의 학습을 돕겠습니다. 감사합니다!
'프로그래밍 기초 > Java Festival' 카테고리의 다른 글
[Java Festival] 15. 특정 수열의 n번째 항까지 출력하기 (0) | 2024.06.29 |
---|---|
[Java Festival] 14. 스네이크 배열 출력하기 (0) | 2024.06.29 |
[Java Festival] Bonus 02. 단어의 가운데 글자 구하기 (0) | 2024.06.26 |
[Java Festival] 12. N * N 배열에 숫자를 세로로 증가시키며 저장하고 출력하기 (0) | 2024.06.25 |
[Java Festival] 11. 두 개의 정수로 나누어지는지 판별하는 메소드 작성하기 (0) | 2024.06.24 |