JAVA 19일차(221117)

점햠미·2022년 11월 17일
0

JATBAP'S JAVA

목록 보기
19/22
post-thumbnail

1. 아래를 작성 하시오.프로그래밍

나라 이름과 인구를 입력하세요.(예: Korea 5000)
나라 이름, 인구 >> Korea 5000
나라 이름, 인구 >> USA 1000000
나라 이름, 인구 >> Swiss 2000
나라 이름, 인구 >> France 3000
나라 이름, 인구 >> 그만

인구 검색 >> France
France의 인구는 3000
인구 검색 >> 스위스
스위스 나라는 없습니다.
인구 검색 >> 그만
============
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

/*
 	나라 이름과 인구를 입력하세요.(예: Korea 5000)
	나라 이름, 인구 >> Korea 5000
	나라 이름, 인구 >> USA 1000000
	나라 이름, 인구 >> Swiss 2000
	나라 이름, 인구 >> France 3000
	나라 이름, 인구 >> 그만

	인구 검색 >> France
	France의 인구는 3000
	인구 검색 >> 스위스
	스위스 나라는 없습니다.
	인구 검색 >> 그만
	============
 */
public class HashScannerCountry {
	public static void main(String[] args) {

		HashMap<String, Integer> country = 
        new HashMap<String, Integer>();
		Scanner sc = new Scanner(System.in);


		System.out.println("나라 이름과 인구를 입력하세요.");
		while (true) {

			System.out.print("나라 이름, 인구 >> ");
			String name = sc.next();

			if (name.equals("그만")) {
				System.out.println("입력을 종료합니다.");
				break;
			}

			int popu = sc.nextInt();

			country.put(name, popu);
		}

		System.out.println();

		while (true) {
			System.out.print("인구 검색 >> ");
			String con = sc.next();

			if (con.equals("그만")) {
				System.out.println("검색을 종료합니다.");
				break;
			}else if(!country.containsKey(con)) { 
            //map의 key에 key가 있지 않으면 
				System.out.println("[" + con + "]나라는 없습니다.");
				continue;
			}
			System.out.println
            (con +"의 인구는 "+ country.get(con) + "명 입니다."); 
            //키값으로 내용 출력 
		}
	}
}

어우어려워.....이해안돼..

2. 큐와 스택에 대하여 설명하시오.(필수)

큐는 가장 먼저 넣은게 가장 나중에 나옴.
스택은 가장 먼저 넣은게 가장 먼저 나옴.


3. Map 에 대하여 설명하시오.


출처 : https://luckyguystory.tistory.com/22 (강사님 블로그)

4. 아래의 TreeMap의 Value를 확인 하기 위한 소스를 짜시오.(필수)

TreeMap<Integer, String> map = new TreeMap<>();
map.put(45, "Brown");
map.put(37, "James");
map.put(23, "Martin");
public class HashMapExample {
	public static void main(String[] args) {
		HashMap<Integer, String> map = new HashMap<Integer, String>();
		map.put(45, "Brown");
		map.put(37, "James");
		map.put(23, "Martin");

		// Key만 담고 있는 컬렉션 인스턴스 생성
		Set<Integer> ks = map.keySet();

		// 전체 Key 출력(for-each문 기반)
		for (Integer n : ks) {
			System.out.print(n.toString() + '\t');
		}
		System.out.println();
		// 전체 Value 출력(for-each문 기반)
		for (Integer n : ks) {
			System.out.print(map.get(n).toString() + '\t');
		}
		System.out.println();
		// 전체 Value 출력 (반복자 기반)
		for (Iterator<Integer> itr = ks.iterator(); itr.hasNext();) {
			System.out.print(map.get(itr.next()) + '\t');
		}
		System.out.println();
	}
}

5.이름과 학점(4.5만점)을 5개 입력받아 해시맵에 저장하고, 장학생 선발 기준을 입력받아 장학생 명단을 출력하라.

이름과 학점>> 강나래 3.1
이름과 학점>> 니보라 3.3
이름과 학점>> 강하늘 4.3
이름과 학점>> 울나리 4.0
이름과 학점>> 그만해 3.7
장학생 선발 학점 기준 입력>> 3.2
장학생 명단: 그만해 강하늘 니보라 울나리 
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;
/*  
 	이름과 학점>> 강나래 3.1
	이름과 학점>> 니보라 3.3
	이름과 학점>> 강하늘 4.3
	이름과 학점>> 울나리 4.0
	이름과 학점>> 그만해 3.7
	장학생 선발 학점 기준 입력>> 3.2
	장학생 명단: 그만해 강하늘 니보라 울나리
 */
public class HashScannerGrade {
	public static void main(String[] args) {
		int MAX_STUDENTS = 5;

		HashMap<String, Double> Grade = new HashMap<>();
		Scanner sc = new Scanner(System.in);

		for (int i = 0; i < MAX_STUDENTS; i++) {
			System.out.print("이름과 학점 >> ");
			String name = sc.next();
			double score = sc.nextDouble();
			Grade.put(name, score);
		}

		System.out.print("장학생 선발 학점 기준 입력 >> ");

		double standard = sc.nextDouble();
		Set<String> keys = Grade.keySet();

		System.out.print("장학생 명단 : ");
		for (String key : keys) {
			if(standard <= Grade.get(key)) {
				System.out.print(key +' ');		
				// key = 현재 String. 
                // 그래서 이름 불러올라면 key를 불러오면 되고
				// 성적(double) - value 불러올라면 .get(key)를 해야됨.
				// key값이 앞에꺼. value값이 뒤에꺼.
			}
		}
		sc.close();
	}
}

젠장야로... 너무 어렵잖냐................

profile
인생 망함 개조빱임

0개의 댓글