백준 BAEKJOON 32751번 햄버거 [PYTHON/파이썬]

문제 출처 (BRONZE Ⅱ)

https://www.acmicpc.net/problem/32751

 

 

 

 

 

풀이

맛있는 햄버거가 되기 위한 조건 4가지가 주어진다.

(사실상 1번 조건인 "재료는 아래에서 위로 쌓는다."는 당연한 이야기니 pass)

2번 조건부터 4번 조건까지 차례대로 구현을 해준 뒤, 단 하나라도 조건에 위배되면 False를 return 했다.

모든 조건에 통과한 햄버거만이 True를 반환시켜 가장 맛있는 햄버거가 될 수 있다.

 

 

 

 

 

코드

def taste():
    # 2번 조건
    if S[0] != "a" or S[-1] != "a":
        return False

    # 3번 조건
    for i in range(N - 1):
        if S[i] == S[i + 1]:
            return False
    # 4번 조건
    for i in ["a", "b", "c", "d"]:
        if S.count(i) > hamburger[ord(i) - ord("a")]:
            return False

    # 모두 만족하면 True 반환
    return True


N = int(input())
hamburger = list(map(int, input().split()))
S = input()

# taste()의 반환된 값을 통한 결과값 출력
print("Yes" if taste() else "No")