-
[17479] 정식당 (Python)[Python] 알고리즘/Silver 2021. 11. 10. 21:51
[문제]
https://www.acmicpc.net/problem/17479
17479번: 정식당
일반메뉴는 noodle 2개로 20,000원, 특별메뉴는 cutlet 2개와 friedrice 1개로 32,000원, 둘이 합쳐 52,000원으로 서비스메뉴 하나를 주문할 수 있다.
www.acmicpc.net
알고리즘 분류는 자료 구조, 해시를 사용한 집합과 맵 입니다.
메뉴와 메뉴의 가격을 dict()에 저장하고, 나중에 조건을 적용하여 문제를 풉니다.
서비스메뉴를 반드시 주문하는 것이 아닙니다.
[코드]
import sys A, B, C = map(int, sys.stdin.readline().split()) dt_A = dict() dt_B = dict() li_C = list() for i in range(A): menu = sys.stdin.readline().split() dt_A[menu[0]] = int(menu[1]) for i in range(B): menu = sys.stdin.readline().split() dt_B[menu[0]] = int(menu[1]) for i in range(C): li_C.append(sys.stdin.readline().rstrip()) N = int(sys.stdin.readline()) A_price = 0 B_price = 0 B_cnt = 0 C_cnt = 0 for i in range(N): menu = sys.stdin.readline().rstrip() if menu in dt_A.keys(): A_price += dt_A[menu] elif menu in dt_B.keys(): B_price += dt_B[menu] B_cnt += 1 else: C_cnt += 1 res = "Okay" if A_price < 20000 and B_cnt > 0: res = "No" else: if A_price + B_price < 50000 and C_cnt > 0: res = "No" elif C_cnt > 1: res = "No" print(res)
'[Python] 알고리즘 > Silver' 카테고리의 다른 글
[2193] 이친수 (Python) (0) 2021.11.15 [1748] 수 이어 쓰기 1 (Python) (0) 2021.11.11 [23056] 참가자 명단 (Python) (0) 2021.11.09 [18115] 카드 놓기 (Python) (0) 2021.11.08 [13414] 수강신청 (Python) (0) 2021.11.05