❓
문제 :
화면에서 여러개의 자연수를 입력받아(0을 입력시 입력종료) 이들 중
홀수 인 자연수들만 이루어진 List 객체를 생성하고
합을 구하고,홀수 중 최대값과 최소값을 찾는 프로그램을 작성하기
단 문자가 입력되면 무시한다.
홀수 들로만 이루어진 List 객체를 생성하여 출력하기
최대값과 최소값은
Collections.max(list)와 Collections.min(list) 함수를 이용한다
7개의 자연수 : 12 77 38 41 53 92 85 aaa 인 경우
77 41 53 85 만 홀수 이므로
77+41+53+85 = 합
홀 수의 최대값 : 85
홀 수의 최소값 : 41
입력된 홀수 : [77,41,53,85]
package chap13;
import java.util.ArrayList;
import java.util.Collections;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("자연수를 입력하세요.(0입력시 입력종료)");
double sum=0;
List<Integer> list = new ArrayList<Integer>();
while(true) {
try {
Integer n = scan.nextInt();
if(n.equals(0)) break;
list.add(n);
sum += n;
if(n%2==0) {
System.out.println(n+"홀수가 아닙니다.");
list.remove(n);
}
} catch (InputMismatchException e) {
scan.next();
}
}
System.out.println(list);
System.out.println(list+"의 합 : "+sum);
System.out.println("홀수의 최대값 : "+Collections.max(list));
System.out.println("홀수의 최소값 : "+Collections.min(list));
System.out.println("입력된 홀수 : "+list);
}
}
❓
문제 :
EastCard, CardDeck,Player를 이용하여 다음 구동 클래스를 완성하시오
[결과]
[1K,2,3K,4,5,6,7,8K,9,10,1,2,3,4,5,6,7,8,9,10]
[6,7,5,4,5,8,9,10,2,3,10,4,1K,6,1,7,2,3K,9,8K]
게임할 인원수를 입력하세요(최대:10)
5
1등:2번(5,4):9
1등:4번(9,10):9
3등:5번(2,3):5
4등:1번(6,7):3
5등:3번(5,8):3
package chap13;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
public class Test3 {
public static void main(String[] args) {
CardDeck deck = new CardDeck();
deck.shuffle();
Scanner scan = new Scanner(System.in);
int gameCnt = 0;
while(gameCnt < 2 || gameCnt > 10) {
System.out.println("게임할 인원수를 입력하세요(2~10)");
gameCnt = scan.nextInt();
}
List<Player> list = new ArrayList<>();
for(int i=0;i<gameCnt;i++) {
list.add
(new Player((i+1)+"번",deck.pick(),deck.pick()));
}
// System.out.println("단순 등수 : ");
// Collections.sort(list, (o1,o2)->o2.getScore() - o1.getScore());
// System.out.println("등수:");
// int i=0;
// for(Player g : list) {
// System.out.println(++i + "등:" + g);
// }
//
//Integer : Player의 점수값을 key
//List<Player> : Player 목록
//Comparator.reverseOrder() : 요소에 등록된 기본 정렬 방식의 역순
//rank : 점수의 역순으로 정렬. 점수에 해당하는 Player 목록을 저장하는 Map객체
System.out.println("동점자 등수 : ");
Map<Integer,List<Player>> rank =
new TreeMap<>(Comparator.reverseOrder());
for(Player g : list) {
List<Player> eqrank = rank.get(g.getScore());
//해당점수를 가진 Player가 없는 경우.키로 등록된 점수가 없다.
if(eqrank == null)
eqrank = new ArrayList<>();
eqrank.add(g); //eqraank : []
rank.put(g.getScore(), eqrank); //수정
}
int r = 0;
//rank.values() : value 값들만 조회
for(List<Player> l : rank.values()) {
for(Player g : l) //[3번,4번]
System.out.println((r+1) + "등:" + g);
r += l.size();
}
}
}
'수업 문제(국비 지원) > Java' 카테고리의 다른 글
| [JAVA] 2022.09.16 - IO입출력 (0) | 2023.04.29 |
|---|---|
| [JAVA] 2022.09.14 - Collection 클래스 (0) | 2023.04.29 |
| [JAVA] 2022.09.13 - DataClass 달력만들기 (0) | 2023.04.29 |
| [JAVA] 2022.09.09 - StringClass (0) | 2023.04.29 |
| [JAVA] 2022.09.07 - 내부 클래스 (0) | 2023.04.29 |