티스토리 뷰
728x90
풀이1
문제 조건에서 S가 1000 이하라고 주어졌기 때문에 for 문의 range를 len(card) // 3
으로 해줘야 한다.
T = int(input())
for tc in range(1, T+1):
card = input()
S = [0]*14
D = [0]*14
H = [0]*14
C = [0]*14
res = True
for i in range(len(card) // 3): # 알파벳 인덱스: 0,3,6,9
if card[i*3] == 'S':
if S[int(card[i*3+1:i*3+3])] == 1:
res = False
break
S[int(card[i*3+1:i*3+3])] += 1
elif card[i*3] == 'D':
if D[int(card[i*3+1:i*3+3])] == 1:
res = False
break
D[int(card[i*3+1:i*3+3])] += 1
elif card[i*3] == 'H':
if H[int(card[i*3+1:i*3+3])] == 1:
res = False
break
H[int(card[i*3+1:i*3+3])] += 1
elif card[i*3] == 'C':
if C[int(card[i*3+1:i*3+3])] == 1:
res = False
break
C[int(card[i*3+1:i*3+3])] += 1
if res is True:
print("#{} {} {} {} {}".format(tc, 13-S.count(1), 13-D.count(1), 13-H.count(1), 13-C.count(1)))
else:
print("#{} ERROR".format(tc))
풀이2
T = int(input())
for tc in range(1, T+1):
card = input()
card_set = set()
S, D, H, C = 13, 13, 13, 13
for i in range(len(card) // 3):
card_set.add(card[i*3:i*3+3])
if card[i*3] == 'S':
S -= 1
elif card[i*3] == 'D':
D -= 1
elif card[i*3] == 'H':
H -= 1
elif card[i*3] == 'C':
C -= 1
if len(card_set) != 4:
print("#{} ERROR".format(tc))
else:
print("#{} {} {} {} {}".format(tc, S, D, H, C))
'algorithm > swea' 카테고리의 다른 글
[swea] 1859. 백만 장자 프로젝트 / python 파이썬 (0) | 2021.04.09 |
---|---|
[swea] 1961. 숫자 배열 회전 / python 파이썬 (0) | 2021.04.09 |
[swea] 1974. 스도쿠 검증 / python 파이썬 (0) | 2021.04.09 |
[swea] 1222. 계산기1 / python 파이썬 (0) | 2021.04.09 |
[swea] 4866. 괄호검사 / python 파이썬 (0) | 2021.04.09 |
댓글
글 보관함
TAG
- 2579 계단오르기
- 브루트포스
- 프로그래머스
- 21609 상어 중학교
- 2018 카카오 공채
- git 미러링
- 파이썬
- swea
- merge에러
- Python
- BFS
- 17406 배열돌리기4
- 백준
- 20057 마법사 상어와 토네이도
- 삼성기출
- 알고리즘
- 영어끝말잇기
- 20056 마법사 상어와 파이어볼
- dfs
- 삼성코테
- 기지국설치
- dp
- react
- 보석쇼핑
- merge 에러
최근에 올라온 글
- Total
- Today
- Yesterday
최근에 달린 댓글