JAVA/문제풀이
컬렉션 프레임워크 문제 (List, Map)
inderrom
2022. 10. 10. 01:38
김범수, 나얼, 박효신, 이수, 신용재, 하현우 총 여섯명의
국어/수학/영어/과학/코딩 점수를 각 0~100까지의 랜덤 값으로
입력하고, 학생별 평균을 구하세요.
(List와 Map을 이용)
===================== 평균점수 =====================
학생명 국어 수학 영어 과학 코딩 평균
김범수 87 68 20 87 87 00
나얼 87 51 56 15 87 00
박효신 87 68 87 89 77 00
이수 87 34 56 47 87 00
신용재 57 68 86 87 68 00
하현우 87 18 56 87 87 00
====================================================
package h_collection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
public class ListScoreBook {
public static void main(String[] args) {
int sum;
String[] names = {"김범수", "나얼", "박효신", "이수", "신용재", "하현우"}; //6개
String[] types = {"학생명", "국어", "수학", "영어", "과학", "코딩", "평균"}; //7개
List<Map<String,Object>> userList = new ArrayList<>();
for(int i = 0; i < 6; i++) {
Map<String,Object> user = new HashMap<>();
user.put(types[0], names[i]);
sum = 0;
for(int j = 1; j <types.length -1; j++) {
user.put(types[j], new Random().nextInt(101));
sum += (int)user.get(types[j]);
}
double avg = (Math.round(((double)sum / types.length -2) *100)/100.0);
user.put(types[types.length-1], avg);
userList.add(user);
}
System.out.println(userList);
System.out.println("===================평균점수====================");
for(int i = 0; i < types.length ; i++) {
System.out.print(types[i]+ "\t");
}
System.out.println();
for(int i = 0; i < userList.size(); i++) {
System.out.print(userList.get(i).get("학생명") + "\t");
System.out.print(userList.get(i).get("국어") + "\t");
System.out.print(userList.get(i).get("수학") + "\t");
System.out.print(userList.get(i).get("영어") + "\t");
System.out.print(userList.get(i).get("과학") + "\t");
System.out.print(userList.get(i).get("코딩") + "\t");
System.out.print(userList.get(i).get("평균") + "\t");
System.out.println();
}