과거⚰️
문자열 심화 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);
}
}