728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/17682
코딩테스트 연습 - [1차] 다트 게임
programmers.co.kr
풀이
먼저 각 점수를 저장할 n변수를 만들고 숫자가 나오면 문자열 형태로 더해주었다.
만약 i가 S or D or T면 각 조건에 맞는 제곱을 해준 뒤, score배열에 추가해주고 n을 공백으로 초기화해준다.
(n을 초기화해야 다음 점수를 정상적으로 받기 때문)
i가 * 이면 score의 길이를 확인하고 1보다 크면 이전값이 있기 때문에 해당 값과 이전값에 *2를 해준다.
(여기서 scorel[-1]을 하면 가장 최근에 들어간 값이고 score[-2]를 하면 2번째로 최근에 들어간 값임)
i가 #이면 score[-1]에 -1을 곱해준다.
문자열을 모두 확인했으면 score에 저장된 값을 모두 더해 return해준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
def solution(dartResult):
score=[]
n=''
for i in dartResult:
if i.isdigit():
n+=i
elif i=='S':
score.append(int(n))
n=''
elif i=='D':
n=int(n)**2
score.append(int(n))
n=''
elif i=='T':
n=int(n)**3
score.append(int(n))
n=''
elif i=='*':
if len(score)>1:
score[-1]*=2
score[-2]*=2
else:
score[-1]*=2
elif i=='#':
score[-1]*=-1
return sum(score)
|
cs |
728x90
반응형
'Python3 > 프로그래머스' 카테고리의 다른 글
2022.06.01 [프로그래머스] (python 파이썬) 행렬의 덧셈 (0) | 2022.06.01 |
---|---|
2022.06.01 [프로그래머스] (python 파이썬) 같은 숫자는 싫어 (0) | 2022.06.01 |
2022.06.01 [프로그래머스] (python 파이썬) [1차]비밀지도 (0) | 2022.06.01 |
2022.06.01 [프로그래머스] (python 파이썬) 부족한 금액 계산하기 (0) | 2022.06.01 |
2022.06.01 [프로그래머스] (python 파이썬) 나머지가 1이 되는 수 찾기 (0) | 2022.06.01 |
댓글