[Java]Lv2. 스파르타 자판기

2025. 2. 7. 15:42·코딩테스트/Java

문제

 

1.사용자가 볼 수 있게 메뉴를 표시합니다.
다음과 같은 음료를 실행창에 표시합니다.
사이다 1,700원
콜라 1,900원
식혜 2,500원
솔의눈 3,000원

2.사용자는 음료를 선택할 수 있습니다. 
사용자에게 어떤 음료를 살 것인지를 입력받습니다.
목록에 없는 음료일 경우 실행이 종료됩니다.

3.사용자는 지불할 금액을 입력할 수 있습니다.
사용자에게 얼마를 넣을지 입력받습니다.
지불하는 금액이 선택한 음료의 비용보다 작다면 “돈이 부족합니다.” 를 출력합니다

4.사용자는 음료를 구매하고 남은 잔액을 확인할 수 있습니다.
잔액을 화면에 표시합니다. 
입력한 돈 2000원, 사이다 1700원 일때 300원을 잔액으로 보여줍니다.  

 

코드

map 컬렉션과 Scanner를 이용하여 풀어보았다.

참고:https://computerreport.tistory.com/31

 

[Java]Map 컬렉션

자판기 프로그램을 만드는 도중  단순한 printf 를 출력하기 보다 Map 컬렉션을 사용하면 더 효과적일 수 있을거같았다.Map이란?Map은 키+키 값으로 구성된 엔트리 객체이다.(키 중복 x , 값 중복  ㅇ

computerreport.tistory.com

 

import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;
import java.util.Set;
import java.util.Scanner;



public class Main {
	 
	public static void main(String[] args) {
        //HashMap 컬렉션을 이용해 <키,값> 입력
		Map<String,Integer> beverages = new HashMap<String,Integer>();
		beverages.put("사이다",1700);
		beverages.put("콜라",1900);
		beverages.put("식혜",2500);
		beverages.put("솔의눈",3000);
		
        //Set 컬렉션을 이용해 반복자를 통해 모든<키,값> 출력
		Set<String> keySet =beverages.keySet();
		Iterator<String>KeyIterator =keySet.iterator();
		while(KeyIterator.hasNext())
		{
			String k=KeyIterator.next();
			Integer v =beverages.get(k);
			System.out.println(k + " : "+ v);
		}
		
        //키값을 입력받아 해당 값이 있는지 확인
		Scanner scanner =new Scanner(System.in);
		String userChoice = scanner.nextLine();
		if(beverages.containsKey(userChoice) == false)
		{
			System.out.print("실행을 종료합니다");
			System.exit(0);
		}
		
		System.out.println(beverages.get(userChoice));
		int coin = scanner.nextInt();
		
		if(coin<beverages.get(userChoice))
		{
			System.out.println("돈이 부족합니다");
		}
		else {
            //입력한 금액에 입력한 키에 해당하는 값을 빼 잔돈 계산
			int remain = coin - beverages.get(userChoice);
			System.out.println(remain);
		}
		
		
		
		
		
		
		}
	
	
	}

 

 

회고

- 키를 입력하고 값을 불러오는 기능이 있는 함수를 찾아보다가 map 컬렉션을 적용시키는게 좋아보여 한번 더 공부하였음.

- 나중에 금융 프로젝트를 적용시킬때도 자주 사용할거 같기 때문에 주기적으로 공부하기

 

'코딩테스트 > Java' 카테고리의 다른 글

[Java]자연수 뒤집어 배열로 만들기(valueOf()사용)  (0) 2025.03.04
[Java]가위 바위 보 게임  (2) 2025.02.11
[Java]Lv3. 단어 맞추기 게임  (1) 2025.02.10
[Java]Lv1. 랜덤 닉네임 생성기  (0) 2025.02.06
[Java]반복문 연습하기  (0) 2025.02.06
'코딩테스트/Java' 카테고리의 다른 글
  • [Java]가위 바위 보 게임
  • [Java]Lv3. 단어 맞추기 게임
  • [Java]Lv1. 랜덤 닉네임 생성기
  • [Java]반복문 연습하기
코딩로봇
코딩로봇
금융 IT 개발자
  • 코딩로봇
    쟈니의 일지
    코딩로봇
  • 전체
    오늘
    어제
    • 분류 전체보기 (152)
      • JavaScript (8)
      • SQL (11)
      • 코딩테스트 (30)
        • Java (15)
        • SQL (13)
      • Java (10)
      • 프로젝트 (30)
        • 트러블슈팅 (10)
        • 프로젝트 회고 (18)
      • git,Github (2)
      • TIL (38)
      • Spring (20)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스파르타 코딩 #부트캠프 #첫ot
    java #arraylist #list #배열
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩로봇
[Java]Lv2. 스파르타 자판기
상단으로

티스토리툴바