for tc in range(1, int(input())+1):
card = input()
check = []
card_set = {'S': 13, 'D': 13, 'H': 13, 'C': 13}
for i in range(0, len(card), 3):
check.append(card[i:i+3])
# 중복값 체크
if len(check) != len(set(check)):
print('#{} ERROR'.format(tc))
else:
# 딕셔너리 value 조정하기
for i in range(0, len(card)-2, 3):
num = card_set[card[i]] - 1
card_set[card[i]] = num
print('#{}'.format(tc), end=' ')
print(*card_set.values())
🔑 카드가 4장뿐이라 dictionary
를 썼다.
📢 중복값을 체크하기 위해서 3개씩 잘라서 리스트에 넣고 set
함수를 쓴 뒤 비교해보면 쉽게 알 수 있다! set
은 중복값을 제거하니까!
그리고 중복되지 않았다면 카드 갯수 카운팅을 해주었다. range에 step을 줘서 알파벳 단위로 끊어읽고 그 알파벳이 나왔다는것은 카드를 1장 갖고 있다는 뜻이므로 -1을 해줌!
항상 알고리즘은 풀고나서 내가 읽어보면 쉬웠는데 풀 당시엔 너무 어렵다😭😭