-
[Java] BOJ 17479 정식당개발자 취업/코딩테스트 준비 2023. 6. 11. 19:28반응형
17479번: 정식당
일반메뉴는 noodle 2개로 20,000원, 특별메뉴는 cutlet 2개와 friedrice 1개로 32,000원, 둘이 합쳐 52,000원으로 서비스메뉴 하나를 주문할 수 있다.
www.acmicpc.net
정답 코드
- 문제에서 요구하는대로 구현
- Map을 활용해서 가격 정보 저장
- 문제에서 메뉴판에서 주어진 메뉴만 주문하기 때문에 서비스 메뉴는 별도 저장 필요 X
import java.io.*; import java.util.*; public class Main { static BufferedReader br; static BufferedWriter bw; static StringTokenizer st; static int A, B, C, N; static HashMap<String, Integer> nMenu, sMenu; public static void main(String[] args) throws IOException { br = new BufferedReader(new InputStreamReader(System.in)); bw = new BufferedWriter(new OutputStreamWriter(System.out)); st = new StringTokenizer(br.readLine(), " "); A = Integer.parseInt(st.nextToken()); B = Integer.parseInt(st.nextToken()); C = Integer.parseInt(st.nextToken()); nMenu = new HashMap<>(); for (int i = 0; i < A; i++) { st = new StringTokenizer(br.readLine(), " "); nMenu.put(st.nextToken(), Integer.parseInt(st.nextToken())); } sMenu = new HashMap<>(); for (int i = 0; i < B; i++) { st = new StringTokenizer(br.readLine(), " "); sMenu.put(st.nextToken(), Integer.parseInt(st.nextToken())); } for (int i = 0; i < C; i++) { String name = br.readLine(); } N = Integer.parseInt(br.readLine()); long a = 0, b = 0, c = 0; for (int i = 0; i < N; i++) { String order = br.readLine(); if (nMenu.containsKey(order)) { a += nMenu.get(order); } else if (sMenu.containsKey(order)) { b += sMenu.get(order); } else { c++; } } if (c > 1 || (b > 0 && a < 20000) || (c > 0 && a + b < 50000)) { System.out.println("No"); } else { System.out.println("Okay"); } } }
'개발자 취업 > 코딩테스트 준비' 카테고리의 다른 글
[Java] BOJ 1897 토달기 (0) 2023.06.12 [Java] BOJ 19583 싸이버개강총회 (0) 2023.06.11 [Java] BOJ 2866 문자열 잘라내기 (0) 2023.06.11 [JAVA] BOJ 1063 킹 (0) 2023.06.10 [Java] BOJ 11652 카드 (0) 2023.06.09