728x90
*문제 출처는 프로그래머스에 있습니다.
문제 제목: [1차] 다트게임
문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/17682
나의 풀이(미완성)
def solution(dart):
arr=[]
tmp = []
sum = 0
for x in dart: #문자열 분리
arr.append(x)
for i in range(len(arr)):
if arr[i].isnumeric():
arr[i] = int(arr[i])
for i in range(1,len(arr)): #10 처리
if arr[i-1] == 1 and arr[i] == 0:
arr[i-1] = 10
arr.pop(i)
for i in range(1,len(arr)):#S,D,T
if arr[i] == 'S':
tmp.append(arr[i-1])
elif arr[i] == 'D':
tmp.append(arr[i-1]*arr[i-1])
elif arr[i] == 'T':
tmp.append(arr[i-1]*arr[i-1]*arr[i-1])
return tmp
모범답안
def solution(dartResult):
n = ''
score = []
for i in dartResult:
if i.isnumeric():
n += i
elif i == 'S':
n = int(n)**1
score.append(n)
n = ''
elif i == 'D':
n = int(n)**2
score.append(n)
n = ''
elif i == 'T':
n = int(n)**3
score.append(n)
n = ''
elif i == '*':
if len(score) > 1:
score[-2] = score[-2] * 2
score[-1] = score[-1] * 2
else:
score[-1] = score[-1] * 2
elif i == '#':
score[-1] = score[-1] * -1
return sum(score)
728x90
'coding test - python > Programmers' 카테고리의 다른 글
Programmers / 최댓값과 최솟값 / Python (0) | 2022.04.12 |
---|---|
Programmers / 최솟값 만들기 / Python (0) | 2022.04.12 |
Programmers / 로또의 최고 순위와 최저 순위 / Python (0) | 2022.04.08 |
Programmers / 숫자 문자열과 영단어 / Python (0) | 2022.04.08 |
Programmers / 완주하지 못한선수 / Python (0) | 2022.04.07 |