알고리즘

[백준] 11507. 카드셋트

담쏙 2021. 9. 13. 22:42
728x90

 

 

11507번: 카드셋트

예제1 : 12 12 11 13은 잃어버린 P카드 :  12개, K : 12개, H : 11개, T : 13라는 뜻이다. 예제2 : 같은 카드(H02)가 존재하므로 GRESKA을 출력하였다.

www.acmicpc.net

 

SWEA의 영준이의 카드 카운팅과 똑같은 문제이다.

딕셔너리로 카드 개수를 선언해주고, set에 카드를 담아 중복을 체크한다.

for문에서 idx를 3씩 늘리며 string slicing을 통해 TXY 형태의 카드 정보를 파싱해서 이미 있는 카드라면 break, 아니라면 카드 개수--, card_set에 추가해준다.

 

num_cards = {'P':13, 'K':13, 'H':13, 'T':13}
S = input()
card_set = set()

isSame = False
for idx in range(0, len(S), 3):
    if S[idx:idx+3] in card_set :
        isSame = True
        print('GRESKA')
        break
    card_set.add(S[idx:idx+3])
    num_cards[S[idx]] -= 1

if not isSame:
    print(*num_cards.values())

 

'알고리즘' 카테고리의 다른 글

[백준] 19583. 싸이버개강총회  (0) 2021.09.15
[백준] 21737. SMUPC 계산기  (0) 2021.09.15
[백준] 9536. 여우는 어떻게 울지?  (0) 2021.09.14
[SWEA] 미로의 거리  (0) 2021.03.14
[프로그래머스] 단속카메라  (0) 2021.03.14