과거⚰️

문자열 심화 1, 2, 3

아무루 2020. 11. 23. 18:46
package day042;

/*
 * . 학생정보와 성적이 담긴 데이터이다.
 * . student배열 {아이디, 주소, 학번}
 * . score배열 {학번, 국어성적, 수학성적, 영어성적}
 *
 * 문제) 전체 성적이 1등인 학생의 이름을 출력
 * 정답) bbb
 */

public class Day04201문자열심화1문제 {
    public static void main(String[] args) {

        String [][] student = {
                {"aaa", "신촌", "1001"},
                {"bbb", "강남", "1002" },
                {"ccc", "대치", "1003"} ,
                {"ddd", "강동", "1004"}
        };

        String[][] score = {
                {"1001" ,"10"  ,"20" , "30"},
                {"1002" ,"100" ,"60" , "60"},
                {"1003" ,"23"  ,"63" , "31"},
                {"1004" ,"45"  ,"30" , "35"},
        };

        int kor = 0;
        String korOne = "";
        int math = 0;
        String mathOne = "";
        int eng = 0;
        String engOne = "";
        int[] avg = new int[4];
        String numberOne = "";
        int[] total = new int[4];


            for (int j=0; j<4; j++){
                if(Integer.parseInt(score[j][1])>=kor){
                    kor = Integer.parseInt(score[j][1]);
                    korOne = score[j][0];
                }if(Integer.parseInt(score[j][2])>=math){
                    math = Integer.parseInt(score[j][2]);
                    mathOne = score[j][0];
                }if(Integer.parseInt(score[j][3])>=eng){
                    eng = Integer.parseInt(score[j][3]);
                    engOne = score[j][0];
                }
            }

        System.out.println(korOne);
        for (int i=0; i< score.length; i++) {
            for (int j = 1; j < score[i].length; j++) {
                total[i]+=Integer.parseInt(score[i][j]);
            }
        }
        for (int i=0; i< total.length; i++){
           avg[i] =total[i]/3;
        }
        int max = 0;
        for (int i=0; i< total.length; i++){
            if(avg[i]>=max){
                max = avg[i];
                numberOne = score[i][0];
            }
        }
        System.out.println("국어 1등 " );
        for (int i=0; i<student.length; i++){
            for (int j=0; j<student[i].length; j++) {
                if (korOne.equals(student[i][2])) {
                    System.out.print(student[i][j]+" ");
                }
            }
        }
        System.out.println();
        System.out.println("수학 1등 ");
        for (int i=0; i<student.length; i++){
            for (int j=0; j<student[i].length; j++) {
                if (mathOne.equals(student[i][2])) {
                    System.out.print(student[i][j]+" ");
                }
            }
        }
        System.out.println();
        System.out.println("영어 1등 ");
        for (int i=0; i<student.length; i++) {
            for (int j = 0; j < student[i].length; j++) {
                if (engOne.equals(student[i][2])) {
                    System.out.print(student[i][j]+" ");
                }
            }
        }
        System.out.println();
        System.out.println("전교 1등 ");
        for (int i=0; i<student.length; i++) {
            for (int j = 0; j < student[i].length; j++) {
                if (numberOne.equals(student[i][2])) {
                    System.out.print(student[i][j]+" ");
                }
            }
        }
    }
}


package day042;
/*
 * 문제) nameData와 moneyData를 조합해서 아래와 같이 출력해보자.
 *
 * 100001/이만수/600
 * 100003/유재석/7000
 * 100001/이만수/100
 * 100002/이영희/400
 * 100001/이만수/600
 * 100004/박명수/900
 * 100001/이만수/130
 * 100003/유재석/200
 * 100002/이영희/700
 * 100002/이영희/900
 * 100004/박명수/800
 */

public class Day04202문자열심화2문제 {
    public static void main(String[] args) {

        String nameData = "";
        nameData+=	"100001/이만수";	nameData += "\n";
        nameData += "100002/이영희";	nameData += "\n";
        nameData += "100003/유재석";	nameData += "\n";
        nameData += "100004/박명수";	nameData += "\n";
        nameData += "100005/최여정";	nameData += "\n";
        nameData += "100006/박병욱";

        String  moneyData = "";
        moneyData += "100001/600";	moneyData += "\n";
        moneyData += "100003/7000";	moneyData += "\n";
        moneyData += "100001/100";	moneyData += "\n";
        moneyData += "100002/400";	moneyData += "\n";
        moneyData += "100001/600";	moneyData += "\n";
        moneyData += "100004/900";	moneyData += "\n";
        moneyData += "100001/130";	moneyData += "\n";
        moneyData += "100003/200";	moneyData += "\n";
        moneyData += "100002/700";	moneyData += "\n";
        moneyData += "100002/900";	moneyData += "\n";
        moneyData += "100004/800";

        String data = "";

        String[] d = nameData.split("\n");
        String[] m = moneyData.split("\n");

        for (int i =0; i<m.length; i++){
            for (int j=0; j<d.length; j++){
                int x = d[j].indexOf("/");
                int y = m[i].indexOf("/");
                if(d[j].substring(0,x).equals(m[i].substring(0,y))){
                    String[] tmp = m[i].split("/");
                    String[] tmp1 = d[j].split("/");
                   data += tmp[0];
                   data += "/";
                   data += tmp1[1];
                   data += "/";
                   data += tmp[1];
                   data += "\n";
                }
            }
        }
        System.out.println(data);
    }
}



package day042;

/*
 * 문제) 각 회원별 구입한 총금액 출력하기
 * 		아래 데이터는 회원이 물건을 구입할때마다 기록한 내용이다.
 *      데이터를 정리해 아래와 같이 출력해보자.
 *
 *      10001 김철수 2670
 *		10002 이영희 1950
 *		10003 유재석 4080
 *		10004 박명수 7130
 */

public class Day04203문자열심화3문제 {
    public static void main(String[] args) {

        String data = "10001/김철수/600\n";
        data += "10002/이영희/800\n";
        data += "10001/김철수/1400\n";
        data += "10003/유재석/780\n";
        data += "10002/이영희/950\n";
        data += "10004/박명수/330\n";
        data += "10001/김철수/670\n";
        data += "10003/유재석/3300\n";
        data += "10002/이영희/200\n";
        data += "10004/박명수/6800\n";

        String[] tmp = data.split("\n");
        int cnt = tmp.length;
        String[] num = new String[cnt];
        String[] name = new String[cnt];
        int[] mon = new int[cnt];
        for(int i=0; i< cnt; i++){
           String[] temp = tmp[i].split("/");
            num[i] = temp[0];
            name[i] = temp[1];
            mon[i] = Integer.parseInt(temp[2]);
        }
        for(int i=0; i< cnt; i++){
            for (int j=i+1; j<cnt; j++) {
                if (num[i].equals(num[j])){
                    mon[i]+=mon[j];
                    num[j] = "";
                    mon[j] = 0;
                    name[j] = "";
                }
            }
        }
        String text = "";
        for(int i=0; i< cnt; i++){
          if(mon[i]!=0){
              text += num[i];
              text += "/";
              text += name[i];
              text += "/";
              text += mon[i];
              text += "\n";
          }
        }
        System.out.println(text);
    }
}