소스 코드
T = int(input())
for tc in range(1, 1 + T):
# 가지고 있는 카드
card = list(input())
# s,d,h,c
s = [0 for _ in range(13)]
d = [0 for _ in range(13)]
h = [0 for _ in range(13)]
c = [0 for _ in range(13)]
# 중간에 탈출했는지 확인용
check = 0
# 출력 값
ss = 13
dd = 13
hh = 13
cc = 13
for q in range(len(card) // 3):
# 카드의 종류, 10의 자리, 1의 자리
t = card[q * 3]
x = card[q * 3 + 1]
y = card[q * 3 + 2]
# 카드의 번호
num = int(x) * 10 + int(y) - 1
if t == 'S':
# 가지고 있지 않으면
if s[num] == 0:
# 체크, -1하기
s[num] = 1
ss -= 1
# 가지고 있으면
else:
# 탈출 조건 갱신, 탈출
check = 1
break
elif t == 'D':
if d[num] == 0:
d[num] = 1
dd -= 1
else:
check = 1
break
elif t == 'H':
if h[num] == 0:
h[num] = 1
hh -= 1
else:
check = 1
break
else:
if c[num] == 0:
c[num] = 1
cc -= 1
else:
check = 1
break
if check == 0:
print('#{} {} {} {} {}'.format(tc,ss,dd,hh,cc))
else:
print('#{} {}'.format(tc, 'ERROR'))
해결 방법
1. 조건이 간단하고, input의 최대 길이가 333(1000//3) 이므로 조건에 따른 코드 작성
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] 부분 수열의 합 - PYTHON #2817 (0) | 2021.07.14 |
---|---|
[SWEA 코딩] 격자판의 숫자 이어 붙이기 - PYTHON #2819 (0) | 2021.07.13 |
[SWEA 코딩] 쇠막대기 자르기 - PYTHON #5432 (0) | 2021.06.28 |
[SWEA 코딩] 빠른 휴대전화 키패드 - PYTHON #4261 (0) | 2021.06.26 |
[SWEA 코딩] 초보자를 위한 점프대 배치하기 - PYTHON #3503 (0) | 2021.06.25 |