HashMap & split & KeySet

📑문제

⭕정답

severData.split(",");

cnt++

🔍풀이

package jokun.KH.test0627;

import java.util.HashMap;
import java.util.Set;

public class Ex01 {
    public static void main(String[] args) {

        String severData = "apple, banana, orange, kiwi, mango, apple, apple, banana";
        String[] splitData = severData.split(",");

        // HashMap : key = value 이러한 형태를 가지는 자료구조, key 는 중복이 안된다.
        HashMap<String, Integer> fruitBox = new HashMap<>();

        // [0] : apple 기존에 map과 비교를 했는데 없어! => put("apple", 1);
        // [1] : banana .. 또 없어! => put("banana", 1);
        // [2] : orange .. 또 없어! => put("orange", 1);
        //...반복하다가
        // [5] : 비교했는데 겹치는게 있어서 true! => put("apple", 기존 깂에 +1);  => put("apple", 2);

        for (String fName : splitData) {
            if (fruitBox.containsKey(fName)) {
                int cnt = fruitBox.get(fName); //해당하는 키 넣으면 값 나옴
                fruitBox.put(fName, ++cnt);
            } else {
                fruitBox.put(fName, 1);
            }
        }

        Set<String> keySet = fruitBox.keySet();
        int fruitCnt = keySet.size();

        System.out.println(fruitCnt + "가지의 과일이 입고되었습니다.");
        System.out.println("각 과일의 수량은 다음과 같습니다.");

        for (String key : keySet) {
            System.out.println(key + "=>" + fruitBox.get(key) + "개");
        }

    }
}

 

 

 

 

 

순서도 & if문

📑문제

⭕정답

간단하게 출력할 것과 if문을 써서, 순서도에서 요청한 내용만 작성하면 정답!

🔍풀이

[내가 제출한 답]

package jokun.KH.test0627;

import java.util.Scanner;

public class Ex02 {
    public static void main(String[] args) {

        System.out.println("=====포켓몬 빵 1개 판매시작=====");
        System.out.print("구입할 빵 개수를 입력해주세요. : ");

         int cnt = 1; //빵 재고

         while (true){
             Scanner sc = new Scanner(System.in);
             int mansu = sc.nextInt(); //요청하는 빵 개수

             if(mansu <= cnt){
                 System.out.println(mansu +"개가 판매완료 되었습니다.");
                 break;
             }else{
                 System.out.println("재고가 부족합니다. 다시 입력해 주세요.");
                 }
         }
    }
}

 

[선생님께서 보안해주신 코드]

package jokun.KH.test0627;

import java.util.Scanner;

public class Ex02_2 {
    public static void main(String[] args) {
        int pkmBread = 1;
        System.out.println("포켓몬 빵 " + pkmBread +"개 판매시작 하겠습니다.");

        while (true){
            Scanner sc = new Scanner(System.in);
            System.out.println("구매할 빵의 갯수를 입력해 주세요.");
             int buyerCnt = sc.nextInt();

            if (pkmBread < buyerCnt){
                System.out.println("요청한 갯수는" + buyerCnt + "이지만, 빵이 없습니다.");
                    if(isFinishSale(pkmBread)) {
                    System.out.println("빵이 모두 소진되었습니다.");
                    System.out.println("판매를 종료합니다.");
                    break;
                    }
            }else {
                System.out.println("판매한 갯수는 " + buyerCnt + "입니다. 판매완료!");
                pkmBread = pkmBread - buyerCnt;
                    if(isFinishSale(pkmBread)) {
                    System.out.println("빵이 모두 소진되었습니다.");
                    System.out.println("판매를 종료합니다.");
                    break;
                    }
            }
        }
    }
    private static boolean  isFinishSale(int totalBread){
        return totalBread <= 0;
       }
    }

 

 

switch & case & default

📑문제

⭕정답

                case 3:
                    print("세번째", key);
                default:
                    print("마지막", key);

🔍풀이

package jokun.KH.test0627;

public class Ex03 {
    public static void main(String[] args) {

        int[] keys = {1, 2, 3};

        for (int key : keys){
            switch (key){
                case 1:
                    print("첫번째", key);
                    break;
                case 2:
                    print("두번째", key);
                case 3:
                    print("세번째", key);
                default:
                    print("마지막", key);
            }
        }
    }
    private static void print(String header, int num){
        System.out.println(header + " " + num + "입니다.");
    }
}
복사했습니다!